Delphi-Quellcode:
procedure Tfrm_Hauptform.Timer1Timer(Sender: TObject);
var
FDock : boolean;
Fa : integer;
FClients : integer;
begin
Timer1.Enabled := false;
try
//
// ALS-Datenbanken
//
AdsConnection_Daten.IsConnected := False;
AdsConnection_Daten.ConnectPath
:= extractfilepath(application.exename) + 'Daten';
AdsConnection_Daten.IsConnected := true;
// Datenbank "DB_Projekte" prüfen und öffnen
If FileExists(extractfilepath(application.exename)
+ 'Daten\DB_Projekte.adt')
then begin
DB_Projekte.Exclusive := false;
DB_Projekte.Active := false;
DB_Projekte.TableName := 'DB_Projekte.ADT';
DB_Projekte.Active := true;
DB_Projekte.edit;
FClients := Panel1.DockClientCount - 1;
if FClients = (-1) then FDock := true;
for Fa := 0 to FClients do
begin
Panel1.DockClients[Fa].hide;
if Fa = FClients
then FDock := true
else FDock := false;
end;
repeat
if FDock = true
then begin
frm_Hauptform.Caption := 'Projekte';
frm_Projektsuche.ManualDock(frm_Hauptform.panel1,nil,alclient);
frm_Projektsuche.show;
end;
until FDock = true;
end;
except
on EADSDatabaseError do
begin
if MessageDlg(
'Das Programm ist bereits durch einen anderen Nutzer geöffnet.'
+ #13 +
'Es kann immer nur ein Nutzer zeitgleich arbeiten.',
mtWarning, [mbOk], 0) = mrOk then
begin
//Close;
end;
end;
end;
end;
In einer anderen kleinen Anwendung hatte ich das Problem schon einmal.
Dort war ich jedoch der einzige Nutzer und habe es mit einer Fehlermeldung abgefangen,
falls ich aus Versehen die Anwendung zweimal gestartet habe.
Ist es grundsätzlich richtig, dass ich mit mehreren Nutzern zugreifen kann?
Derzeit sind es maximal drei.