☆☆☆☆☆高分寻求答案~~!!!☆☆☆☆☆

gaoqi5037 2002-11-25 04:42:24
在Delphi中如何令程序在一个循环中响应其他用户事件`~??

我想让程序运行后就运行一个循环..在程序退出前循环才结束..在整个的循环过程中

怎么响应用户事件~~?

我不想创建新的线程..
...全文
90 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoqi5037 2002-11-26
  • 打赏
  • 举报
回复
嗯..创建新的线程..线程间的通讯会不会有问题~~?我从没做过多线程的程序~~
wisenowa 2002-11-26
  • 打赏
  • 举报
回复
线程件通信用TEvent或全局变量
stanely 2002-11-25
  • 打赏
  • 举报
回复
错了,
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg
end;

和application.ProcessMessages;还是有区别的:

application.ProcessMessages的实质是peekmessage,
getmessage没有消息就挂起线程,peekmessage不是,无论有没有消息,都会永远在循环着监测消息队列的消息。

zwjchina 2002-11-25
  • 打赏
  • 举报
回复
我喜欢新建立一个线程来做这个循环!:)
stanely 2002-11-25
  • 打赏
  • 举报
回复
你不如用一个工作线程解决问题,界面主线程用来响应工作线程的进度消息之类的东西,你可以在线程中向任何一个窗口发消息,并在那个窗口中响应这个消息。
stanely 2002-11-25
  • 打赏
  • 举报
回复

while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg
end;

和application.ProcessMessages;

没区别!
lws0472 2002-11-25
  • 打赏
  • 举报
回复
在循环中加
application.ProcessMessages;
wisenowa 2002-11-25
  • 打赏
  • 举报
回复
把所有的窗体删除

在dpr文件的begin end 间加入如下循环
消息可以自己处理

while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg
end;
flyingkiller 2002-11-25
  • 打赏
  • 举报
回复
Application.ProcessMessages;
sowine 2002-11-25
  • 打赏
  • 举报
回复

开玩笑,不创建新进程能响应其他事件?用中断?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧