一个急诊,请大家关照啊!!!!!!

Thumb168 2004-04-01 10:04:52
在主程序中执行一个自定义的函数

result:=Readinfo();

//主程序在死等中,一切不能动。
============================================================

Readinfo的定义是这样的。
function Readinfo():string;
begin
// 读取一些信息,可能要等很长时间才能等的到。
end;

===================================================================================================
要达到的目标,在主程序中执行了Readinfo();后,主程序还能动,但是,等不到结果,Readinfo()函数不用返回。
请大家帮忙!
...全文
71 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Thumb168 2004-04-01
  • 打赏
  • 举报
回复
我用过U are U的开发包,他有一个函数实现这个过程,调用了一个函数后,在等返回值的过程中,主程序还不死。不知道是怎么实现的。
因为我控制的也是一个设备,所以也想这样实现,原以为很简单的,所以程序就以这个思路开发了,可是最后确实现不了了。苦!
Thumb168 2004-04-01
  • 打赏
  • 举报
回复
Readinfo()是一定要在主程序中调用的。
Thumb168 2004-04-01
  • 打赏
  • 举报
回复
是我写错了,Readinfo()函数不能返回


to stanely(俺是邢她汉子) ,在程序中,主窗体还要进行其它操作!

如果设置工作线程,你的意思应该是这样吧!
function Readinfo():string;
begin
第一步,开启一个线程(线程中读取所的信息)
第二步,等线程结束(因为我要线程结束后的读取结果)

第三步,把结果返结主程序Readinfo:=结果
end;
可是,程序在第二步时,主程序又死掉了。

还请大家帮帮忙啊
stanely 2004-04-01
  • 打赏
  • 举报
回复
你说的主程序能动,就是主窗口能够被拖动,但是在函数返回之前不能进行什么操作吧?

如果是这样
那么工作线程,并且让mainform.enabled:=false;当线程结束的时候变成true;
soaringsouth 2004-04-01
  • 打赏
  • 举报
回复
Readinfo()函数不用返回?
什么意思?
Thumb168 2004-04-01
  • 打赏
  • 举报
回复
谢谢两们,可这样不行,

要达到的目标,在主程序中执行了Readinfo();后,主程序还能动,但是,等不到结果,Readinfo()函数不用返回,同时,主程序还不能死等!
aiirii 2004-04-01
  • 打赏
  • 举报
回复
用 CreateThread , 將你的
Readinfo 傳進去執行

也可做個 TThread , 將實現代碼放進去!
tw_cshn 2004-04-01
  • 打赏
  • 举报
回复
开另一个线程来执行Readinfo();
Thumb168 2004-04-01
  • 打赏
  • 举报
回复
jiju(UNCC) 可是为了开发使用方便,不能要消息的.
jiju 2004-04-01
  • 打赏
  • 举报
回复


把第二,3步废掉,线程读完后投消息给主程序教主程序来取值
naughtyboy 2004-04-01
  • 打赏
  • 举报
回复
如果ReadInfo中有循环,加上Application.ProcessMessages;
如果没有循环,就按照上面说的,创建一个线程

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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