有什么可以代替Application.ProcessMessages;(50分)

  • 主题发起人 主题发起人 梁无惧
  • 开始时间 开始时间

梁无惧

Unregistered / Unconfirmed
GUEST, unregistred user!
我在没有使用VCL,有什么函数可以替代Application.ProcessMessages????
 
API有Yield()函数!
 
照着它做就行了:
function TApplication.ProcessMessage(var Msg: TMsg): Boolean;
var
Handled: Boolean;
begin
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;
end;

procedure TApplication.ProcessMessages;
var
Msg: TMsg;
begin
while ProcessMessage(Msg) do {loop};
end;
 
谢谢了!
TO YB_unique
Yield()在MSDN里说只用于16位的或小WIN32程序(译得不准确)
 
后退
顶部