Subversion Repositories indexer_suite

Rev

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

  1. unit MainForm;
  2.  
  3. // TODO: viele funktionen: (ggf auch per kontextmenü im explorer)
  4. //       - öffnen der datei, wenn datenträger online ist
  5. //       - anzeigen von eigenschaften
  6. //       - schauen ob es die dateiprüfsumme noch woanders gibt
  7. //       - welche dateien in A und welche in B?
  8. //       - Alle Fehler zeigen
  9. //       - Statistik (Anzahl Dateien etc)
  10.  
  11. interface
  12.  
  13. uses
  14.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  15.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus, Data.DB,
  16.   Data.Win.ADODB, IniFiles;
  17.  
  18. type
  19.   TfrmMain = class(TForm)
  20.     MainMenu1: TMainMenu;
  21.     OfflineExplorer1: TMenuItem;
  22.     RedundancyVerifier1: TMenuItem;
  23.     IndexCreator1: TMenuItem;
  24.     ADOConnection1: TADOConnection;
  25.     Finder1: TMenuItem;
  26.     procedure OfflineExplorer1Click(Sender: TObject);
  27.     procedure RedundancyVerifier1Click(Sender: TObject);
  28.     procedure IndexCreator1Click(Sender: TObject);
  29.     procedure Finder1Click(Sender: TObject);
  30.     procedure FormDestroy(Sender: TObject);
  31.     procedure FormCreate(Sender: TObject);
  32.   private
  33.     FTableName: string;
  34.   public
  35.     ini: TMemIniFile;
  36.     property TableName: string read FTableName;
  37.   end;
  38.  
  39. var
  40.   frmMain: TfrmMain;
  41.  
  42. implementation
  43.  
  44. {$R *.dfm}
  45.  
  46. uses
  47.   ExplorerForm, RedundancyForm, IndexCreatorForm, FinderForm;
  48.  
  49. procedure TfrmMain.FormCreate(Sender: TObject);
  50. var
  51.   iniFilename: string;
  52. begin
  53.   iniFilename := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + 'VtsFileIndexerSuite.ini';
  54.   if FileExists(iniFilename) then
  55.   begin
  56.     ini := TMemIniFile.Create(iniFilename);
  57.  
  58.     FTableName := ini.ReadString('IndexerSuite', 'TableName', 'files');
  59.     Caption := Caption + Format(' [%s]', [FTableName]);
  60.  
  61.     ADOConnection1.CommandTimeout := ini.ReadInteger('IndexerSuite', 'CommandTimeout', 5*60);
  62.     ADOConnection1.ConnectionString := ini.ReadString('IndexerSuite', 'ConnectionString', '');
  63.     if ADOConnection1.ConnectionString = '' then
  64.     begin
  65.       ShowMessage('Please define a ConnectionString in the INI file.');
  66.       Close;
  67.       Exit;
  68.     end;
  69.     try
  70.       ADOConnection1.Connected := true;
  71.     except
  72.       on E: Exception do
  73.       begin
  74.         ShowMessage('Cannot connect to the database: ' + E.Message);
  75.         Close;
  76.         Exit;
  77.       end;
  78.     end;
  79.   end
  80.   else
  81.   begin
  82.     ShowMessageFmt('%s not found', [iniFilename]);
  83.     Close;
  84.   end;
  85. end;
  86.  
  87. procedure TfrmMain.FormDestroy(Sender: TObject);
  88. begin
  89.   FreeAndNil(ini);
  90. end;
  91.  
  92. procedure TfrmMain.IndexCreator1Click(Sender: TObject);
  93. begin
  94.   TfrmIndexCreator.Create(self);
  95. end;
  96.  
  97. procedure TfrmMain.OfflineExplorer1Click(Sender: TObject);
  98. begin
  99.   TfrmExplorer.Create(Self);
  100. end;
  101.  
  102. procedure TfrmMain.Finder1Click(Sender: TObject);
  103. begin
  104.   TfrmFinder.Create(Self);
  105. end;
  106.  
  107. procedure TfrmMain.RedundancyVerifier1Click(Sender: TObject);
  108. begin
  109.   TfrmRedundancy.Create(Self);
  110. end;
  111.  
  112. end.
  113.