Warum nicht
Application.ProcessMessages;
verwenden?
Delphi-Quellcode:
procedure WinProcessMessages;
var
ProcMsg: TMsg;
Handled: Boolean;
begin
while PeekMessage(ProcMsg, 0, 0, 0, PM_REMOVE) do
begin
{ Der Teil fehlt auch alles bei dir, welchen Application.ProcessMessages sonst eigentlich machen würde.
Handled := False;
if Assigned(Application.OnMessage) then
Application.OnMessage(MsgProcMsg, Handled);
if Application.IsPreProcessMessage(ProcMsg) or Application.IsHintMsg(ProcMsg) or Handled
or Application.IsMDIMsg(ProcMsg) or Application.IsKeyMsg(ProcMsg) or Application.IsDlgMsg(ProcMsg) then
Continue;
}
if (ProcMsg.message = WM_QUIT) then
begin
Application.Terminate; // denn wie soll Delphi sonst das Ende mitbekommen, wenn du alle Messages hier abfängst?
Break; // oder Exit; ... verlässt Beides diese Prozedur, da nach der Schleife eh Schluß ist
end;
TranslateMessage(ProcMsg);
DispatchMessage(ProcMsg);
end;
end;
Da fehlt gar nichts denn meine Version ist
NONVCL.
Application und dein
Handle gibt es bei mir nicht.
Nur zur Info!
Zitat:
Wenn du die o.g. Lösung einbaust, hängst du immer in Btn_GCode_Memo2_sendenClick fest.
Das ist quatsch denn dann dürfte WM_PAINT und alle anderen Messagen nicht mehr arbeiten.
überlege doch mal was Application.ProcessMessages; oder meine Version für
NONVCL denn macht.
Aber egal es läuft ja jetzt scheinbar bei ihm und Thema erledigt.