我有几个线程同时运行,每个线程有问题的时候,都要弹出对话框窗体(这个对话框窗体是我建的Form2 )Form2 只有一个,那么我该如何 自动创建 和释放每个线程 弹出的对话框Form2呢?

解决方案 »

  1.   

    进入临界区,调用Form2(如下过程),离开临界区.建议把异常信息记录在LOG文件或者在主窗体放一个MEMO或LISTBOX,用同步的方法把异常信息记录下来
    procedure ShowErrMsg;
      with TForm2.Create(nil) do
      try
        ...
        ShowModal;
      finally
        Free;
      end;
    end;
      

  2.   

    var
      frm: TForm2;
    begin
      frm := TForm2.Create(nil);  try 
        ... 
        frm.ShowModal; 
      finally 
        FreeAndNil(frm); 
      end; 
    end;
    end;
      

  3.   

    Procedure ShowMsg;
    var 
      MsgForm: TForm2; 
    begin 
      MsgForm:= TForm2.Create(nil);   try 
        ... 
        MsgForm.ShowModal; 
      finally 
        FreeAndNil(MsgForm); 
      end; 
    end; 
      

  4.   

    with TForm2.Create(nil) do
    begin
      try
        ShowModal;
      Finally
        Free;
      end;
    end;