Subversion Repositories indexer_suite

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 daniel-mar 1
unit FinderForm;
2
 
3
interface
4
 
5
uses
6
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
7
  System.Classes, Vcl.Graphics,
8
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, AdoDb;
9
 
10
type
11
  TfrmFinder = class(TForm)
12
    Edit1: TEdit;
13
    Memo1: TMemo;
14
    Button1: TButton;
15
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
16
    procedure Button1Click(Sender: TObject);
17
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
18
    procedure FormShow(Sender: TObject);
19
  private
20
    procedure EnableDisableControls(v: boolean);
21
  protected
22
    StopRequest: boolean;
23
  public
24
    function conn: TAdoConnection;
25
    function TableName: string;
26
  end;
27
 
28
implementation
29
 
30
{$R *.dfm}
31
 
32
uses
33
  MainForm, AdoConnHelper, IniFiles;
34
 
35
procedure TfrmFinder.Button1Click(Sender: TObject);
36
var
37
  q: TADODataSet;
3 daniel-mar 38
  cntFound: integer;
2 daniel-mar 39
begin
40
  memo1.Lines.Clear;
41
  EnableDisableControls(false);
42
  try
3 daniel-mar 43
    cntFound := 0;
2 daniel-mar 44
    q := conn.GetTable('select filename from '+TableName+' where filename like '+conn.SQLStringEscape('%'+edit1.Text+'%')+' order by filename');
45
    while not q.Eof do
46
    begin
47
      memo1.Lines.Add(q.Fields[0].AsString);
3 daniel-mar 48
      Inc(cntFound);
2 daniel-mar 49
      if StopRequest then Abort;
50
      q.Next;
51
    end;
3 daniel-mar 52
    ShowMessageFmt('Done. Found %d files', [cntFound]);
2 daniel-mar 53
  finally
54
    EnableDisableControls(true);
55
  end;
56
end;
57
 
58
function TfrmFinder.conn: TAdoConnection;
59
begin
60
  result := frmMain.ADOConnection1;
61
end;
62
 
63
procedure TfrmFinder.EnableDisableControls(v: boolean);
64
begin
65
  Memo1.Enabled := v;
66
  Button1.Enabled := v;
67
  Edit1.Enabled := v;
68
end;
69
 
70
procedure TfrmFinder.FormClose(Sender: TObject; var Action: TCloseAction);
71
begin
72
  Action := caFree;
73
end;
74
 
75
procedure TfrmFinder.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
76
begin
77
  StopRequest := true;
78
end;
79
 
80
procedure TfrmFinder.FormShow(Sender: TObject);
81
var
82
  ini: TMemIniFile;
83
begin
84
  ini := frmMain.ini;
85
  Edit1.Text := ini.ReadString('Finder', 'DefaultDir', '');
86
end;
87
 
88
function TfrmFinder.TableName: string;
89
begin
90
  result := frmMain.TableName;
91
end;
92
 
93
end.