![]() |
nachrichtenschleife aufrecht erhalten
hy there,
ich habe ein nonvcl programm in dem eine suchfunktion etwas länger dauert nun wollte ich das er in der zeit die nachrichtenschleife aufrecht erhält!! ich hab es mit
Delphi-Quellcode:
probiert nur leider beendet er dort mein programm nicht wirklich mehr mit, nimmt zwar noch eingaben entgegen, aber wird nicht wirklich geschlossen. nur das fenster verschwindet optisch..
procedure ProcessMessages;
// hält die Nachrichtenschleife in Gang var Msg: TMsg; begin if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; gibt es da eine besser möglich keit die schleife aufrecht zu erhalten??? danke schon mal im vorraus |
Re: nachrichtenschleife aufrecht erhalten
Versuch das:
Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Procedure : ProcessMessages // Comment : Replacement for ProcessMessages of TApplication procedure ProcessMessages(hWnd: DWORD); var Msg : TMsg; begin while PeekMessage(Msg, hWnd, 0, 0, PM_REMOVE) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; |
Re: nachrichtenschleife aufrecht erhalten
Delphi-Quellcode:
In deinem Programmcode muss nun der Return-wert ausgewertet werden:
function ProcessMessages:boolean;
// hält die Nachrichtenschleife in Gang var Msg: TMsg; begin if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin result := Msg.Message <> WM_QUIT; if Result then begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; end;
Delphi-Quellcode:
for I := 0 to 99999 do
begin // irgendwas tun ... if not ProcessMessages then Exit; end; |
Re: nachrichtenschleife aufrecht erhalten
mhh als handle das handle vom hauptfenster???
ich habs mit hinstance als handle versucht aber das ging nicht, fährt das programm fest und nimmt keine eingaben mehr an kann auch nicht auf normalem weg beendet werden!! |
Re: nachrichtenschleife aufrecht erhalten
Zitat:
Hast du meinen Betrag gelesen ? Hast du gesehen, dass ich eine Sonderbehandlung für die Message WM_QUIT eingebaut habe?! In der VCL wird das ganz ähnlich gemacht. |
Re: nachrichtenschleife aufrecht erhalten
ja hab ich, hab ich auch getest deine version aber irgend wie immer noch nicht das, was ich mir erhofft hab.. und ich hab kein plan wiese....
ich hab es jetzt erst mal so gelöst das ich luckie´s version nehme und dann in wm_destroy noch zusätzlich nen halt; kommando eingefügt hab, das ist zwar nicht das gelbe vom ei aber es geht erstmal :pale: und der post von mir auf den von luckie bezogen, ja.. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz