我按一个按钮A 会弹出一个窗体b,当我再按按钮A的时候他还是会弹出窗体b,这样就出现了2个窗体b了,我怎么控制让他只出现一个窗体b(也就是说当窗体b存在的时候,不会再出现窗体b)
请问怎么去控制呢

解决方案 »

  1.   

    if not Assigned(Form2) then
      Application.CreateForm(TForm2, Form2);
    Form2.Show;
    Form2.BrintToFront;
      

  2.   

    Form2要定义成全局变量,不能是函数里的变量
      

  3.   

    wywry的方法是对的
    只是写错了一个单词
    最后一句应该是  Form2.BringToFront还有个问题,点击窗体右上角那个关闭按钮,就结束程序,是哪个事件(onclose?),代码是怎么样的?
      

  4.   

    这样来也行
    FORM2为按钮A按下时弹出的窗口procedure TForm1.AClick(Sender:Object);
    var
      hw:HWND;
    begin
       hw=FindWindow(nil,'Form2');
       if hw>0 then
       beign
          //已经运行一个实例
       end;
    end;
      

  5.   


    if not Assigned(Form2) then
       Form2:=TForm2.Create(Application);
    Form2.Show;