两个窗体Form1和Form2。想在Form1关闭后对主窗体Form2进行一些操作。可Form1关闭以后并不消失,Form2可以进行下面的操作。具体请见代码:procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  Dial: TDial;
begin
  strTelNo := edtTelNo.Text;  Form2.btnDial.Enabled := False;
  Form2.btnHangup.Enabled := True;  Dial := TDial.Create(mainform.MSCommMain, strTelNo);
end;请问各位该如何改? (另:如果去掉Dial := TDial.Create(mainform.MSCommMain, strTelNo);这句,就没问题了)谢谢!

解决方案 »

  1.   

    不好意思 就是MainForm就是Form2
      

  2.   

    是不是因为dial声明在form1中的问题?因为这里你创建dial已经没有用了,把dial的声明放在mainform中看看。
      

  3.   

    因该是把这Dial := TDial.Create(mainform.MSCommMain, strTelNo);当作form1的一部分在处理,所以form1不关闭;
    你试试在form1的一个button click中
    var
      Dial: TDial;
    begin
      strTelNo := edtTelNo.Text;  Form2.btnDial.Enabled := False;
      Form2.btnHangup.Enabled := True;  Dial := TDial.Create(mainform.MSCommMain, strTelNo);
    form1.close;
    end;
      

  4.   

    按楼上所讲 在Form1关闭前就先运行了TDial.Create。 现在是要在FORM1关闭以后再运行。
      

  5.   

    var
      Dial: TDial;关键是这句了!变量生存时间在begin...end;之后就被释放了,具体还要看你在TDial.Create写了什么,出现令人不解的动作。你可以把dial定义在application生存的代码里(例如:*.dpr文件里)