Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Wieso lässt sich mein Fenster nicht schließen?

  Alt 15. Feb 2004, 19:08
Also:

Deine Schleife:
Delphi-Quellcode:
while (GetMessage(msg, 0, 0, 0)) do begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;
Meine Schleife:
Delphi-Quellcode:
while not done do
  begin
    PeekMessage(msg, FHandle, 0, 0, PM_REMOVE);
    if msg.message = WM_QUIT then
      done := true
    else
    begin
      TranslateMessage(msg);
      DispatchMessage(msg);
      Sleep(1);
    end;
  end;
GetMessage liefert false, wenn WM_QUIT eintrifft, deshalb bricht deine Schleife in diesem Fall ab.
PeekMessage liefert true, wenn eine Nachricht da ist und ansonsten false. Deshalb muss ich selbst auf WM_QUIT prüfen und die Schleife dann abbrechen, was ich ja auch tue.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat