我的代码:
if assigned(form2) then
begin
SetForegroundWindow(FindWindow(nil,'form2'));
end
else
begin
pForm:= TForm2.Create(self);
pForm.Show;
end;
结果依然没变:调用form2后,再调用form3窗体,然后再调用
form2,依然是重开form2窗体,原来运行的form2窗体还在,没象
希望的那样被激活并在最前面,而是有2个form2窗体并存。
if assigned(form2) then否 //此处判断 Form2
begin
form2.BringToFront
end
else
begin
Form2:= TForm2.Create(self); //===============
Form2.Show; //===============,我的代码跟你是不一样的
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
所以你不需要另外定义局部变量你只需要
if Assigned(Form1) then //这里是判断这个全局变量,而不是象你那样判断局部变量
begin //象你那样判断局部变量(其实根本不用定义局部变量),那当然是永远为 nil
form1.BringToFront
end
else
begin
Form1:= TForm1.Create(self);
Form1.Show;
end