执行顺序问题(26)

  • 主题发起人 主题发起人 terry_zhou82
  • 开始时间 开始时间
T

terry_zhou82

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.RunExe;var l:string;begin ......... if not abstable1.Eof then begin l:=table1.FieldByName('XX').AsString; if l= 'YY' then begin ShellExecute(Handle,'open',PChar(Table1.FieldByName('ZZ').AsString),nil,nil,sw_shownormal); end; if Table1.FieldByName('*').AsString <> ' ' then Table1.Delete ; end; table1.refresh; end;问题来了。每次运行到这里。shellexecute还没有执行,就DELETE了。如果把最后三条语句注销。则可以正常运行shellexecute,请问各位高手,是是么原因呢?谢谢了
 
l <> 'yy' 单步不就行了?
 
不太明白,
 
让你单步跟踪。不知道你是否用过调试跟踪,简单介绍一下用法给你:1》光标停在if l= 'YY' then这一行,然后按一下F5,这时候这一行就会变成红色,2》然后按F9执行你的程序,当程序调用RunExe函数时,会自动在这一行停住,然后你每按一次F8,你的Delphi2009就会执行一行,在这期间,如果你把鼠标停在变量l上,还可以获得该变量的值。3>把你的代码整理一下,你看你代码中的begin和end都没有对齐,让别人看着就觉得累。如果你不会对齐,你可以下载个DelForEx程序,它可以自动帮你对齐代码的。
 
ShellExecute 执行后sleep一下,可能还没执行起来就继续执行下边的语句了。你试下
 
后退
顶部