我在这个函数中创建了frmTaskTip窗体,但是执行完frmTaskTip := TfrmTaskTip.Create(Application)这句就直接进入frmTaskTip 的onshow事件,急死我了
procedure TfrmMain.ShowTaskTips;
begin
  if not Assigned(frmTaskTip) then
    frmTaskTip := TfrmTaskTip.Create(Application);
  frmTaskTip.FDM := FDM;
  frmTaskTip.FUser := FUser;
  //frmTaskTip.ShowTips;
  frmTaskTip.Show;
end

解决方案 »

  1.   

    你的意思是在调用Show之前就执行了OnShow?这不科学啊,执行的是OnCreate吧
      

  2.   

    打断点调试,窗体事件的执行顺序OnCreate、OnShow、、、、
      

  3.   

    Delphi的编译器还是值得信赖的,确定不是Delphi的问题。好好调试一下。
      

  4.   

    怎么看,代码都正常的样子額~会不会还有别的地方在创建?还是断点跟踪,或者,showmessage 吧, 一条语句后,加一句  showmessage()看到底是哪里在作怪了
      

  5.   

    检查一下TfrmTaskTip,定义是否有问题。
      

  6.   

    mdi子窗体的showform事件是会在createform后自动执行的
    你在createform后传入了变量值,希望在showform中调用传入的变量,但对于mdi子窗体来说,这样是不行的
    也就是说mdi子窗体的showform事件是个摆设解决方法是,把你目的的onshow事件中的代码移到一个自定义函数中
    createform
    传入参数
    调用自定义函数