Subversion Repositories indexer_suite

Rev

Go to most recent revision | 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. begin
  39.   memo1.Lines.Clear;
  40.   EnableDisableControls(false);
  41.   try
  42.     q := conn.GetTable('select filename from '+TableName+' where filename like '+conn.SQLStringEscape('%'+edit1.Text+'%')+' order by filename');
  43.     while not q.Eof do
  44.     begin
  45.       memo1.Lines.Add(q.Fields[0].AsString);
  46.       if StopRequest then Abort;
  47.       q.Next;
  48.     end;
  49.   finally
  50.     EnableDisableControls(true);
  51.   end;
  52. end;
  53.  
  54. function TfrmFinder.conn: TAdoConnection;
  55. begin
  56.   result := frmMain.ADOConnection1;
  57. end;
  58.  
  59. procedure TfrmFinder.EnableDisableControls(v: boolean);
  60. begin
  61.   Memo1.Enabled := v;
  62.   Button1.Enabled := v;
  63.   Edit1.Enabled := v;
  64. end;
  65.  
  66. procedure TfrmFinder.FormClose(Sender: TObject; var Action: TCloseAction);
  67. begin
  68.   Action := caFree;
  69. end;
  70.  
  71. procedure TfrmFinder.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  72. begin
  73.   StopRequest := true;
  74. end;
  75.  
  76. procedure TfrmFinder.FormShow(Sender: TObject);
  77. var
  78.   ini: TMemIniFile;
  79. begin
  80.   ini := frmMain.ini;
  81.   Edit1.Text := ini.ReadString('Finder', 'DefaultDir', '');
  82. end;
  83.  
  84. function TfrmFinder.TableName: string;
  85. begin
  86.   result := frmMain.TableName;
  87. end;
  88.  
  89. end.
  90.