Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Nachrichtenschleife wird nicht beendet

  Alt 13. Feb 2009, 09:27
Zitat von sirius:
Edit: @Ferby: Du warst prinzipiell auf dem richtigen Weg. Nur VCL und nonVCL zu mischen ist sehr schwierig und eher nicht zu empfehlen.
Vorallem da die VCL-Nachrichten-Schleife eigentlich noch viel mehr verarbeitet.
(z.B. wirdst du so probleme bekommen, wenn in deiner Form mal ein Hint angezeigt werden soll, es werden "einige" Dialog-Steuerfunktionen nicht zur verfügung gehen, sowie keine WM_xxx-Nachrichten nach CM_xxx umgesetzt werden, welche aber für viele VCL-Controls sehr wichtig sind.)

Wenn, dann bastel dir lieber eine Schleife aus der VCL, statt wie mit deiner Variante:
Delphi-Quellcode:
While not Application.Terminated do
  Application.ProcessMessages;
ja und ich glaub man muß hier nicht auf WM_Quit hören, sondern auf WM_CLOSE ... WM_QUIT wird aufgerugen, wenn das Hauptfenster der VCL geschlossen wird (glaub ich)

Also wentweder du rufst in OnClose/OnDestroy deiner Form Application.Terminate; auf, oder du sendest dort zumindestens ein WM_QUIT an deine Anwendung.


Ansonsten bin ich mit den Anderen einer Meinung ... wenn schon VCL, dann mach es richtig und nicht so Halb-Halb.
$2B or not $2B
  Mit Zitat antworten Zitat