6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
7 System.Types, System.Classes, Vcl.Graphics,
8 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, FireDAC.Stan.Intf, FireDAC.Stan.Option,
9 FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
10 FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.MySQL,
11 FireDAC.Phys.MySQLDef, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf,
12 FireDAC.DApt, Vcl.ExtDlgs, Vcl.StdCtrls, Vcl.ExtCtrls, Data.DB,
13 FireDAC.Comp.DataSet, FireDAC.Comp.Client, System.Rtti,
14 System.Bindings.Outputs, Vcl.Bind.Editors, Data.Bind.EngExt,
15 Vcl.Bind.DBEngExt, Data.Bind.Components, Data.Bind.DBScope,
16 FireDAC.VCLUI.Wait, FireDAC.Comp.UI, Vcl.DBCtrls, Jpeg, Vcl.Grids,
18 FireDAC.Phys.IB, FireDAC.Phys.IBDef, FireDAC.Phys.FB, FireDAC.Phys.FBDef,
19 Vcl.ComCtrls, Vcl.Buttons;
23 FDConnection1: TFDConnection;
30 OpenPictureDialog1: TOpenPictureDialog;
31 BindSourceDB1: TBindSourceDB;
32 BindingsList1: TBindingsList;
33 LinkPropertyToFieldCaption: TLinkPropertyToField;
34 LinkControlToField2: TLinkControlToField;
35 FDGUIxWaitCursor1: TFDGUIxWaitCursor;
36 DBNavigator1: TDBNavigator;
37 DataSource1: TDataSource;
39 FDTable1ID: TIntegerField;
40 FDTable1NAME: TWideStringField;
41 FDTable1SOURCE: TBlobField;
49 BindSourceDB2: TBindSourceDB;
50 LinkControlToField1: TLinkControlToField;
52 LinkControlToField5: TLinkControlToField;
57 LinkControlToField4: TLinkControlToField;
63 SpeedButton1: TSpeedButton;
65 FDTable2title: TWideStringField;
66 FDTable2title2: TWideStringField;
67 FDTable2mente: TSmallintField;
68 FDTable2info: TIntegerField;
69 FDTable2count: TIntegerField;
70 FDTable2password: TWideStringField;
71 FDTable2ng: TWideStringField;
73 FDTable3dbnum: TIntegerField;
74 FDTable3database: TWideStringField;
75 procedure Button1Click(Sender: TObject);
76 procedure Button4Click(Sender: TObject);
77 procedure Button3Click(Sender: TObject);
78 procedure FormCreate(Sender: TObject);
79 procedure Button6Click(Sender: TObject);
80 procedure ComboBox1Select(Sender: TObject);
81 procedure CheckBox1Click(Sender: TObject);
82 procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
83 procedure Button5Click(Sender: TObject);
84 procedure SpeedButton1Click(Sender: TObject);
85 procedure ListBox1KeyDown(Sender: TObject; var Key: Word;
87 procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
88 State: TDragState; var Accept: Boolean);
89 procedure ListBox1EndDrag(Sender, Target: TObject; X, Y: Integer);
90 procedure ListBox1StartDrag(Sender: TObject; var DragObject: TDragObject);
106 uses System.NetEncoding, IdHashSHA, IdHashMessageDigest;
110 procedure TForm1.Button1Click(Sender: TObject);
119 t := TResourceStream.Create(HInstance, 'Resource_' + i.ToString,
121 AppendRecord([i, Format('slide%d.jpg', [i])]);
123 FDTable1SOURCE.LoadFromStream(t);
132 procedure TForm1.Button3Click(Sender: TObject);
137 s := FDTable1.CreateBlobStream(FDTable1.FieldByName('source'), bmRead);
138 j := TJpegImage.Create;
140 Canvas.Draw(0, 0, j);
145 procedure TForm1.Button4Click(Sender: TObject);
151 until (Bof = true) and (Eof = true);
158 procedure TForm1.Button5Click(Sender: TObject);
162 Edit4.Text := '
\82Æ
\82é
\82Ë
\81`
\82Ç
\8d\86';
164 '<h1 style=color:maron;text-align:center;font-style:italic>
\82Æ
\82é
\82Ë
\81`
\82Ç
\8d\86</h1>';
165 Edit3.Text := '
\94n
\8e,
\88¢
\95Û,
\8e\80\82Ë,
\8eE
\82·';
166 Edit6.Text := 'admin';
167 ComboBox1.Text := 'info';
168 ComboBox1Select(nil);
169 UpDown1.Position := 30;
170 UpDown1Click(nil, btNext);
171 CheckBox1.Checked := false;
173 ListBox1.Items.Clear;
174 ListBox1.Items.Add('info');
175 ListBox1.Items.Add('master');
177 ListBox1.Items.Add('
\8cf
\8e¦
\94Â'+i.ToString);
182 procedure TForm1.Button6Click(Sender: TObject);
183 function hash(str: string): string;
185 with TIdHashSHA1.Create do
188 result := HashStringAsHex(str);
196 if Edit6.Text <> '' then
197 FDTable2.FieldByName('password').AsString := hash(hash(Edit6.Text));
198 if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
200 ComboBox1.ItemIndex := 0;
201 ComboBox1Select(nil);
205 FDTable2.ApplyUpdates;
206 FDTable2.CommitUpdates;
207 FDTable3.ApplyUpdates;
208 FDTable3.CommitUpdates;
212 procedure TForm1.CheckBox1Click(Sender: TObject);
216 if CheckBox1.Checked = true then
220 FDTable2.FieldByName('mente').AsInteger := i;
223 procedure TForm1.combo;
228 ComboBox1.Items.Clear;
234 s := FieldByName('database').AsString;
235 ComboBox1.Items.Add(s);
238 ComboBox1.Text := Lookup('dbnum', FDTable2.FieldByName('info').AsInteger,
241 ListBox1.Items.Text := ComboBox1.Items.Text;
242 i := ComboBox1.Items.IndexOf('master');
243 ComboBox1.Items.Delete(i);
246 procedure TForm1.ComboBox1Select(Sender: TObject);
248 FDTable2.FieldByName('info').AsInteger := FDTable3.Lookup('database',
249 ComboBox1.Text, 'dbnum');
252 procedure TForm1.FormCreate(Sender: TObject);
254 if FDTable1.Exists = false then
260 if FDTable2.Exists = false then
261 FDTable2.CreateTable;
265 if FDTable3.Exists = false then
266 FDTable3.CreateTable;
269 if (Bof = true)and(Eof = true) then
277 CheckBox1.Checked := FDTable2.FieldByName('mente').AsInteger = 1;
278 UpDown1.Position := FDTable2.FieldByName('count').AsInteger;
282 procedure TForm1.itemsCopy;
287 ComboBox1.Items.Clear;
288 for i := 0 to ListBox1.Items.Count - 1 do
290 s := ListBox1.Items[i];
291 if s <> 'master' then
292 ComboBox1.Items.Add(s);
294 if (ComboBox1.Items.IndexOf(ComboBox1.Text) = -1) and
295 (ComboBox1.Items.Count > 0) then
296 ComboBox1.ItemIndex := 0;
299 procedure TForm1.list;
306 while (Bof = false) or (Eof = false) do
308 for i := 0 to ListBox1.Items.Count - 1 do
309 AppendRecord([i, ListBox1.Items[i]]);
313 procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
314 State: TDragState; var Accept: Boolean);
316 Accept := Source is TListBox;
319 procedure TForm1.ListBox1EndDrag(Sender, Target: TObject; X, Y: Integer);
323 i := ListBox1.ItemAtPos(Point(X, Y), true);
324 if ((X > 0) or (Y > 0)) and (i > -1) then
326 ListBox1.Items.Move(item, i);
331 procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
336 i := ListBox1.ItemIndex;
337 if (Key = VK_DELETE) and (i > -1) and (ListBox1.Items[i] <> 'master') then
339 ListBox1.Items.Delete(i);
344 procedure TForm1.ListBox1StartDrag(Sender: TObject;
345 var DragObject: TDragObject);
347 item := ListBox1.ItemIndex;
350 procedure TForm1.SpeedButton1Click(Sender: TObject);
355 if (s <> '') and (ListBox1.Items.IndexOf(s) = -1) then
357 ListBox1.Items.Add(s);
358 ComboBox1.Items.Add(s);
360 ListBox1.ItemIndex := ListBox1.Items.Count - 1;
364 procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
366 FDTable2.FieldByName('count').AsInteger := UpDown1.Position;