Hallo
Ich habe eine Lösung. Bin zwar nicht ganz so glücklich aber es läuft. Was haltet ihr davon?
Was würdet ihr verbessern?
Code:
constructor TMain.create();
var i : Integer;
begin
//Überprüft, dass nur eine Applikation pro PC gestartet wird.
if ( FindWindow( Nil, PChar( APPLICATION_TITLE )) = 0 ) Then
begin
//initCodeSite
mSys := TSystemFunc.create();
mSys.InitCodeSite();
mHasError := False;
//Applikation initialisieren
Application.Initialize;
Application.Title := APPLICATION_TITLE;
initIntro();
//mIntro := TIntroThread.Create(False);
// Kurze Pause damit der User das Intro auch sieht.
// Processmessage wird benötigt damit die Schrift angezeigt wird.
for i:= 1 to 100 do
begin
Application.ProcessMessages;
sleep(20);
end;
initDataModule();
if(DM.DCOMConnection.Connected) Then IntroForm.ConnectionLabel.Caption := 'Connected ...';
Application.ProcessMessages;
initScreens();
// Kurze Pause damit der User sieht dass sich der Server verbunden hat.
// Processmessage wird benötigt damit die Schrift angezeigt wird.
for i:= 1 to 50 do
begin
Application.ProcessMessages;
sleep(10);
end;
// Intro wird Angehalten
if(not mHasError) Then IntroForm.StopIntro();
Application.Run;
end
else
begin
Windows.Beep(500,250);
MessageDlg( APPLICATION_TITLE + ' is not able to run twice on this PC.', mtError, [mbOK], 0);
end;
end;