南
南宫吹云
Unregistered / Unconfirmed
GUEST, unregistred user!
先看一段文字:
“...
[red]如该解释所描述的一样,事件是串行的,每一个事件的处理都要等到前一个事件处理
完毕之后。当应用程序正在执行事件处理代码时(也就是说,当它没有处于等待事件状态
时),该应用程序的其他事件必须在该程序的消息队列中等待(除非应用程序使用多线程
处理,每个线程都有自己的消息队列)。[/red]当应用程序响应一条消息之后,返回等待
状态时,它将变成程序列表中的最后一位,等待着处理其他消息。在16位的WINDOWS中,
不能中断正在执行复杂事件处理程序的应用程序,其他应用程序必须等待。”
。。
如何理解上面的文字?我定义了一个过程,在此过程中初始化一些信息,同时显示一
些状态信息,同时此过程不是在一个窗体中使用的,在另外的窗体中也可以调用。如何显
示这些状态信息是个问题,我想用消息机制,在这个过程中每处理完一段代码便postmessage
,又定义了一个过程处理接收此消息,在这个过程中将变量赋给label.caption,可是执行
的结果却总是显示最后处理的代码时的状态信息。以下是我定义的过程:
const
wm_info=wm_user+100;
...
public
{ Public declarations }
procedure prodataini(var info:string);
procedure wmrecieve(var msg:tmessage); message wm_info;
...
procedure TformSplash.wmrecieve(var msg: tmessage);
begin
//if msg.Msg=wm_info then
// begin
//msg.Result:=1;
labinfo.Caption:=s;
msg.Result:=1;
//end;
end;
消息是怎样工作的呢?我这样写是不是有错?该如何实现我的功能呢?
“...
[red]如该解释所描述的一样,事件是串行的,每一个事件的处理都要等到前一个事件处理
完毕之后。当应用程序正在执行事件处理代码时(也就是说,当它没有处于等待事件状态
时),该应用程序的其他事件必须在该程序的消息队列中等待(除非应用程序使用多线程
处理,每个线程都有自己的消息队列)。[/red]当应用程序响应一条消息之后,返回等待
状态时,它将变成程序列表中的最后一位,等待着处理其他消息。在16位的WINDOWS中,
不能中断正在执行复杂事件处理程序的应用程序,其他应用程序必须等待。”
。。
如何理解上面的文字?我定义了一个过程,在此过程中初始化一些信息,同时显示一
些状态信息,同时此过程不是在一个窗体中使用的,在另外的窗体中也可以调用。如何显
示这些状态信息是个问题,我想用消息机制,在这个过程中每处理完一段代码便postmessage
,又定义了一个过程处理接收此消息,在这个过程中将变量赋给label.caption,可是执行
的结果却总是显示最后处理的代码时的状态信息。以下是我定义的过程:
const
wm_info=wm_user+100;
...
public
{ Public declarations }
procedure prodataini(var info:string);
procedure wmrecieve(var msg:tmessage); message wm_info;
...
procedure TformSplash.wmrecieve(var msg: tmessage);
begin
//if msg.Msg=wm_info then
// begin
//msg.Result:=1;
labinfo.Caption:=s;
msg.Result:=1;
//end;
end;
消息是怎样工作的呢?我这样写是不是有错?该如何实现我的功能呢?