我做的Application.ProcessMessages的替代品(0分)

  • 主题发起人 主题发起人 zjlcc
  • 开始时间 开始时间
Z

zjlcc

Unregistered / Unconfirmed
GUEST, unregistred user!
proceduredo
Events;
var
Msg:TMsg;
begin
while PeekMessage(Msg,0,0,0,1)do
begin
if Msg.Message<>18 then
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
end;
优点是不需要forms,messages单元的并入,适合用在单独的.dpr编程当中
 
呵呵,想法不错。我把Forms.pas里面的代码也贴出来吧。
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;
 
【请及时提前或结束您的问题,谢谢合作!】
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
610
import
I
I
回复
0
查看
638
import
I
后退
顶部