DELPHI 6
近日遇到这样一个问题:
在一个窗体中加入两个Timer组件,一个为500ms,另一个为600ms, 在两个Timer的触发事件中这样写:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.enabled := false;
  ShowMessage('Timer1');
end;
procedure TForm2.Timer2Timer(Sender: TObject);
begin
  Timer2.enabled := false;
  Messagebox(Self.Handle, 'Timer2', PChar(Self.Caption), MB_OK);
end;
Please run!
程序保证死掉!但是若将两个对话框弹出的方式都改为ShowMessage或MessageBox则不会出现此现象,百思不得其解!在用汇编窗口调试时,却无此现象!
请哪位高手赐教!

解决方案 »

  1.   

    你这样改就没问题
    procedure TForm1.Timer2Timer(Sender: TObject);
    begin
      Timer2.enabled := false;
      Messagebox(Application.Handle, 'Timer2', PChar(Self.Caption), MB_OK);
    end;
    你的handle赋值有问题,你看下帮助,你那样用会有冲突
      

  2.   

    不是程序死掉了,是showmessage显示的模式消息框在主窗体的后面,
    所以主窗体不响应你的消息,你把其他程序最大化然后在最小化就能看到
    那个timer1的消息框,点确定。。
      

  3.   

    用alt+tab再激活你的程序就看到了