/[projects]/dao/DelphiScanner/Components/tpsystools_4.04/examples/Delphi/datamrg0.pas
ViewVC logotype

Contents of /dao/DelphiScanner/Components/tpsystools_4.04/examples/Delphi/datamrg0.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2671 - (show annotations) (download)
Tue Aug 25 18:15:15 2015 UTC (8 years, 9 months ago) by torben
File size: 6331 byte(s)
Added tpsystools component
1 (* ***** BEGIN LICENSE BLOCK *****
2 * Version: MPL 1.1
3 *
4 * The contents of this file are subject to the Mozilla Public License Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 * http://www.mozilla.org/MPL/
8 *
9 * Software distributed under the License is distributed on an "AS IS" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
12 * License.
13 *
14 * The Original Code is TurboPower SysTools
15 *
16 * The Initial Developer of the Original Code is
17 * TurboPower Software
18 *
19 * Portions created by the Initial Developer are Copyright (C) 1996-2002
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 *
24 * ***** END LICENSE BLOCK ***** *)
25
26 unit datamrg0;
27
28 interface
29
30 uses
31 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
32 ExtCtrls, StdCtrls, Buttons,
33
34 StTxtDat, StMerge;
35
36 type
37 TForm1 = class(TForm)
38 Panel1: TPanel;
39 Panel2: TPanel;
40 Splitter1: TSplitter;
41 Panel3: TPanel;
42 Splitter2: TSplitter;
43 Panel4: TPanel;
44 Memo1: TMemo;
45 Memo2: TMemo;
46 Memo3: TMemo;
47 Button1: TButton;
48 OpenDialog1: TOpenDialog;
49 OpenDialog2: TOpenDialog;
50 OpenDialog3: TOpenDialog;
51 Button2: TButton;
52 Button3: TButton;
53 Panel5: TPanel;
54 SpeedButton1: TSpeedButton;
55 SpeedButton2: TSpeedButton;
56 SpeedButton3: TSpeedButton;
57 SpeedButton4: TSpeedButton;
58 Button4: TButton;
59 SaveDialog1: TSaveDialog;
60 Button5: TButton;
61 SaveDialog2: TSaveDialog;
62 Button6: TButton;
63 procedure Button2Click(Sender: TObject);
64 procedure FormDestroy(Sender: TObject);
65 procedure Button1Click(Sender: TObject);
66 procedure NavClick(Sender: TObject);
67 procedure Button4Click(Sender: TObject);
68 procedure FormCreate(Sender: TObject);
69 procedure Button3Click(Sender: TObject);
70 procedure Button5Click(Sender: TObject);
71 procedure ClearMemo(Sender: TObject);
72 procedure Button6Click(Sender: TObject);
73 private
74 procedure UpdateButtons;
75 procedure UpdateTagDisplay;
76 function NextFile: string;
77 procedure DoUnknownTag(Sender: TObject; Tag: AnsiString;
78 var Value: AnsiString; var Discard: Boolean);
79 procedure DisableButtons;
80 { Private declarations }
81 public
82 TemplateName : string;
83 MergeNo : Integer;
84 Schema : TStTextDataSchema;
85 DataSet : TStTextDataRecordSet;
86 Merger : TStTextMerge;
87 { Public declarations }
88 end;
89
90 var
91 Form1: TForm1;
92
93 implementation
94
95 {$R *.DFM}
96
97 procedure TForm1.Button2Click(Sender: TObject);
98 begin
99 if OpenDialog2.Execute and OpenDialog3.Execute then begin
100 Schema.Free;
101 Schema := TStTextDataSchema.Create;
102 Schema.LoadFromFile(OpenDialog2.FileName);
103
104 DataSet.Free;
105 DataSet := TStTextDataRecordSet.Create;
106 DataSet.Schema := Schema;
107 DataSet.LoadFromFile(OpenDialog3.FileName);
108 DataSet.First;
109
110 UpdateButtons;
111 UpdateTagDisplay;
112
113 end;
114 end;
115
116 procedure TForm1.FormDestroy(Sender: TObject);
117 begin
118 Schema.Free;
119 DataSet.Free;
120 Merger.Free;
121 end;
122
123 procedure TForm1.Button1Click(Sender: TObject);
124 begin
125 if OpenDialog1.Execute then begin
126 TemplateName := OpenDialog1.FileName;
127 MergeNo := 1;
128 Merger.LoadTemplateFromFile(TemplateName);
129 Memo3.Lines.Assign(Merger.Template);
130 end;
131 end;
132
133 procedure TForm1.UpdateTagDisplay;
134 begin
135 Memo2.Lines.Assign(DataSet.CurrentRecord.FieldList);
136 end;
137
138 procedure TForm1.DisableButtons;
139 begin
140 SpeedButton1.Enabled := False;
141 SpeedButton2.Enabled := False;
142 SpeedButton3.Enabled := False;
143 SpeedButton4.Enabled := False;
144 end;
145
146 procedure TForm1.UpdateButtons;
147 begin
148 if DataSet.Active then begin
149
150 SpeedButton1.Enabled := True;
151 SpeedButton2.Enabled := True;
152 SpeedButton3.Enabled := True;
153 SpeedButton4.Enabled := True;
154
155 if DataSet.BOF then begin
156 SpeedButton1.Enabled := False;
157 SpeedButton2.Enabled := False;
158 end;
159
160 if DataSet.EOF then begin
161 SpeedButton3.Enabled := False;
162 SpeedButton4.Enabled := False;
163 end;
164
165 end else
166 DisableButtons;
167 end;
168
169 procedure TForm1.NavClick(Sender: TObject);
170 begin
171 if Sender = SpeedButton1 then DataSet.First;
172 if Sender = SpeedButton2 then DataSet.Prior;
173 if Sender = SpeedButton3 then DataSet.Next;
174 if Sender = SpeedButton4 then DataSet.Last;
175
176 UpdateButtons;
177 UpdateTagDisplay;
178 end;
179
180 function TForm1.NextFile : string;
181 begin
182 Result := ChangeFileExt(ExtractFileName(TemplateName),
183 Format('.M%.2d', [MergeNo]));
184 Inc(MergeNo);
185 end;
186
187 procedure TForm1.Button4Click(Sender: TObject);
188 begin
189 SaveDialog1.FileName := NextFile;
190 if SaveDialog1.Execute then begin
191 Memo3.Lines.SaveToFile(SaveDialog1.FileName);
192 end;
193 end;
194
195 procedure TForm1.DoUnknownTag(Sender : TObject; Tag : AnsiString;
196 var Value : AnsiString; var Discard : Boolean);
197 begin
198 if Tag = 'TIME' then
199 Value := FormatDateTime('hh:mm:ss', Now)
200 else
201 Value := InputBox('Unknown Tag', 'Value for ' + Tag, '');
202 end;
203
204 procedure TForm1.FormCreate(Sender: TObject);
205 begin
206 Merger := TStTextMerge.Create;
207 Merger.DefaultTags.Add('FIRST_NAME=Sir or Madam');
208 Merger.DefaultTags.Add('CITY=ANYTOWN');
209 Merger.DefaultTags.Add('COLOR=BLUE');
210 Merger.OnGotUnknownTag := DoUnknownTag;
211
212 DisableButtons;
213 end;
214
215 procedure TForm1.Button3Click(Sender: TObject);
216 begin
217 Merger.MergeTags.Assign(Memo2.Lines);
218 Merger.Merge;
219 Memo1.Lines.Assign(Merger.MergedText);
220 end;
221
222 procedure TForm1.Button5Click(Sender: TObject);
223 begin
224 SaveDialog2.FileName := TemplateName;
225 if SaveDialog2.Execute then begin
226 TemplateName := SaveDialog2.FileName;
227 Memo3.Lines.SaveToFile(TemplateName);
228 Merger.Template.Assign(Memo3.Lines);
229 end;
230 end;
231
232 procedure TForm1.ClearMemo(Sender: TObject);
233 begin
234 (Sender as TMemo).Lines.Clear;
235 end;
236
237
238 procedure TForm1.Button6Click(Sender: TObject);
239 begin
240 if Assigned(DataSet) and DataSet.Active then begin
241 DataSet.Active := False;
242 DataSet.Free;
243 DataSet := nil;
244 Memo2.Lines.Clear;
245 DisableButtons;
246 end;
247 end;
248
249 end.

  ViewVC Help
Powered by ViewVC 1.1.20