奇怪: 单步运行程序执行正确,直接RUN程序运行就不对,为什么会这样呢?

blp 2003-06-16 09:51:35
奇怪: 单步运行程序执行正确,直接RUN程序运行就不对,为什么会这样呢?

这是一段打印程序,我只要单步运行,就可以显示正确的与数据库连接的打印显示;但是我直接用RUN,程序的调用就不对
为什么会这样呢?
...全文
100 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fhuibo 2003-06-16
  • 打赏
  • 举报
回复
检查代码多用 while ... do 和 try except end;
blp 2003-06-16
  • 打赏
  • 举报
回复
采用了Cornerliang的方法,好像暂时能行了,谢谢各位
Comer 2003-06-16
  • 打赏
  • 举报
回复
我做过一个取计算机名的程序也是这样的,在某个语句后面加个延时吧
blp 2003-06-16
  • 打赏
  • 举报
回复
我在程序中使用了rony的方法,直接run还是不行;
后来我在
function TYwReport.Proc : bool;
begin
if Assigned(FOnProc) then
OnProc(self);
result := true;
end;

中的if Assigned(FOnProc) then语句,加了断点,运行结果正确,会不会是这一步的问题呢,
rony 2003-06-16
  • 打赏
  • 举报
回复
注意,在等待的过程中应该调用Application.ProcessMessages;将系统控制权暂时交出。

有没有这样呢?
while ... do
begin
..............
Application.ProcessMessages;
end;
wooden954 2003-06-16
  • 打赏
  • 举报
回复
可能有些操作是对时间敏感的,单步的时候执行时间长没问题,直接执行的时候来不及做的一些操作是另外一些操作的输入条件,所以就死了!
blp 2003-06-16
  • 打赏
  • 举报
回复
ZYXLP讲的可能是对的,就是在等待的时候,容易进入死循环,所以我把等待改成了有限次数的等待,这样就避免了死循环,我不知道是不是这里的问题。
l_xiaofeng 2003-06-16
  • 打赏
  • 举报
回复
这只是打印程序,好象不会出现楼上所说的现象,仔细检查一下代码吧!
blp 2003-06-16
  • 打赏
  • 举报
回复
是关于DDE的连接和回调的,
ZyxIp 2003-06-16
  • 打赏
  • 举报
回复
我想是其中有一步速度较慢,后面的代码要等前面执行完成后才能正常工作。

比如你新开一个线程进行解压,你必须要等文件完全解压后才能操作。
WWWWA 2003-06-16
  • 打赏
  • 举报
回复
代码?

5,388

社区成员

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

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