- Result := False;
- if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
- begin
- Result := True;
- if Msg.Message <> WM_QUIT then
- begin
- Handled := False;
- if Assigned(FOnMessage) then FOnMessage(Msg, Handled);
- if not IsHintMsg(Msg) and not Handled and not IsMDIMsg(Msg) and
- not IsKeyMsg(Msg) and not IsDlgMsg(Msg) then
- begin
- TranslateMessage(Msg);
- DispatchMessage(Msg);
- end;
- end
- else
- FTerminate := True;
- end;