Subversion Repositories indexer_suite

Rev

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

  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;
  38.   cntFound: integer;
  39. begin
  40.   memo1.Lines.Clear;
  41.   EnableDisableControls(false);
  42.   try
  43.     cntFound := 0;
  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);
  48.       Inc(cntFound);
  49.       if StopRequest then Abort;
  50.       q.Next;
  51.     end;
  52.     ShowMessageFmt('Done. Found %d files', [cntFound]);
  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.
  94.