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 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
 
3 daniel-mar 61
    ADOConnection1.CommandTimeout := ini.ReadInteger('IndexerSuite', 'CommandTimeout', 5*60);
2 daniel-mar 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.