主窗体是form1,因为很多主要运行事件是在form2中Create事件中执行,同时form2的显示和隐藏是由用户在form1中设定的。我这样写没有效果,请高手指点。注:不方便使用 Show方式,因为我要等待Form2中的事件执行完后,自动关闭,之后还有很多的事件等待执行。  Form2:=TForm2.Create(Application);  if True=Checkbox1.checked then  Form2.Visible:=False else Form2.Visible:=True;   Form2.ShowModal;
  Form2.Free;  // 停止,form2未关闭时严禁往下执行  ……

解决方案 »

  1.   

    Form2里加一BOOL变量C, ONCLOSE事件里 CANCLOSE:= C;处理执行完后, C设置TRUE;
      

  2.   

    额,,,我承认我很努力的看楼主的题目,总算有点眉目:
    他应该是想要这样:
      Form2 := TForm2.Create(Application);
      Form2.ShowModal;
      if Form2.ModalResult := mrOk then
      begin
         {do somethinf here...}
      end;
      Form2.Free;总觉得现在的同学提问的问题比抽象类还要抽象。
      

  3.   

    debug:
    if Form2.ModalResult := mrOk then
    if Form2.ModalResult = mrOk then
      

  4.   

    唉...你所用的方法又不是重载DoCreate函数, 你不想显示窗体就直接点调用OnCreate函数就是了...又没有什么影响的.
      

  5.   

    事件说穿了也只是个函数..既然只要调用函数不想打开窗体, 就不要Show是了, 直接按顺序调用相应的事件就是了