Einzelnen Beitrag anzeigen

Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#15

Re: abfragen, ob eine Form offen ist.

  Alt 24. Jul 2007, 08:22
Du könntest doch einfach im OnCreate Deines Forms einen Mutex erzeugen
Delphi-Quellcode:
dwMutex : DWORD;
{ .... }
dwMutex := CreateMutex(nil,true,'Test'); // Schauen, ob das Programm schon mal läuft
ihn im OnClose wieder freigeben
CloseHandle(dwMutex);
und dann einfach vor dem CreateForm prüfen, ob der Mutex schon existiert
Delphi-Quellcode:
dwMutex := CreateMutex(nil,true,'Test'); // Mutex erzeugen
  try
    if GetLastError <> ERROR_ALREADY_EXISTS then // Mutex noch nicht erzeugt
     CreateForm( {... und so weiter }
dwMutex muss dann nur irgendwo global deklariert sein, aber das sollte ja das kleinere Problem sein. Ist vielleicht nicht die einfachste Lösung, aber sollte so funktionieren.

Grüße

Tom

EDIT: Na, der Mutex im OnCreate ist ja doppelt gemoppelt. So schlägt der ja fehl. Also das OnCreate ist wohl unnötig.
  Mit Zitat antworten Zitat