unit TForm1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DatenmodulUnit, Menus, StdCtrls, Registry, Grids, DBGrids,
DB, ADODB,
Mask, DBCtrls;
type
TForm2 =
class(TForm)
MainMenu1: TMainMenu;
Datei1: TMenuItem;
DBffnen1: TMenuItem;
DBSchlieen1: TMenuItem;
DBKonfiguration1: TMenuItem;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
procedure OpenDatabaseClick(Sender: TObject);
procedure CloseDatabaseClick(Sender: TObject);
procedure DatenbankKonfiguration1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
private
{ Private-Deklarationen }
function WriteDSNToRegistry(DSN:
string): Boolean;
function ReadDSNFromRegistry(
var DSN:
string): Boolean;
public
{ Public-Deklarationen }
end;
var
Form2: TForm2;
implementation
procedure TForm2.OpenDatabaseClick(Sender: TObject);
begin
if DataModule2.OpenDatabase=true
then
MessageDlg('
Die Datenbank konnte erfolgreich geöffnet werden',
mtInformation, [mbOK], 0)
else
MessageDlg('
Die Datenbank konnte nicht geöffnet werden',
mtError, [mbOK], 0);
end;
{$R *.dfm}
procedure TForm2.CloseDatabaseClick(Sender: TObject);
begin
if DataModule2.CloseDatabase=true
then
MessageDlg('
Die Datenbank konnte erfolgreich geschlossen werden',
mtInformation, [mbOK], 0)
else
MessageDlg('
Die Datenbank konnte nicht geschlossen werden',
mtError, [mbOK], 0);
end;
function TForm2.WriteDSNToRegistry(DSN:
String): Boolean;
var Registry: TRegistry;
begin
WriteDSNToRegistry:=true;
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_LOCAL_MACHINE;
{Der Registry-Pfad für Ihren Eintrag}
if Registry.KeyExists('
\Software\MeinProg\MeineAnw')=false
then
try
Registry.CreateKey('
\Software\MeinProg\MeineAnw');
except
Registry.Free;
WriteDSNToRegistry:=false;
Exit;
end;
try
if Registry.OpenKey('
\Software\MeinProg\MeineAnw',
true)=true
then
Registry.WriteString('
DSN', DSN)
else begin
MessageDlg('
Es konnte nicht in die Registry geschrieben '+
'
werden', mtError, [mbOK], 0);
WriteDSNToRegistry:=false;
end;
finally
Registry.CloseKey;
Registry.Free;
end;
end;
function TForm2.ReadDSNFromRegistry(
var DSN:
String): Boolean;
var Registry: TRegistry;
begin
ReadDSNFromRegistry:=true;
Registry:=TRegistry.Create;
try
Registry.RootKey:=HKEY_LOCAL_MACHINE;
if Registry.KeyExists('
\Software\MeinProg\MeineAnw')=true
then begin
if Registry.OpenKey('
\Software\MeinProg\MeineAnw', true)=true
then
DSN:=Registry.ReadString('
DSN')
else
ReadDSNFromRegistry:=false;
end
else
ReadDSNFromRegistry:=false;
finally
Registry.Free;
end;
end;
procedure TForm2.DataSource1DataChange(Sender: TObject; Field: TField);
begin
end;
procedure TForm2.DatenbankKonfiguration1Click(Sender: TObject);
var DSN:
string;
begin
if DataModule2.EditMeineAnwendungDSN(DSN)=true
then begin
MessageDlg('
Der DSN konnte erfolgreich geändert werden',
mtInformation, [mbOK], 0);
WriteDSNToRegistry(DSN);
end
else
MessageDlg('
Der DSN konnte nicht geändert werden',
mtError, [mbOK], 0);
end;
procedure TForm2.FormShow(Sender: TObject);
var DSN:
string;
begin
if ReadDSNFromRegistry(DSN)=true
then begin
if DataModule2.SetMeineAnwendungDSN(DSN)=true
then
if DataModule2.OpenDatabase=false
then begin
MessageDlg('
Es konnte keine Verbindung zur Datenbank '+
'
aufgebaut werden.', mtError, [mbOK], 0);
DatenbankKonfiguration1Click(Sender);
end;
end
else if DataModule2.OpenDatabase=false
then begin
MessageDlg('
Es konnte keine Verbindung zur Datenbank '+
'
aufgebaut werden.', mtError, [mbOK], 0);
DatenbankKonfiguration1Click(Sender);
end
else begin
MessageDlg('
Es konnte keine DSN ausgelesen werden.',
mtError, [mbOK], 0);
DatenbankKonfiguration1Click(Sender);
end;
end;
procedure TForm2.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
WriteDSNToRegistry(DataModule2.GetMeineAnwendungDSN);
DataModule2.CloseDatabase;
end;
INITIALIZATION
end.