在Form1中: procedure TForm1.Button1Click(Sender: TObject); begin if not Assigned(Form2) then begin Form2:= TForm2.Create(Application); Form2.Show; end else SetActiveWindow(Form2.Handle); end;在Form2中: procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); begin Form2.Free; Form2:= nil; end;
var f: tobject; i: integer; const formname = 'Form2'; begin form2.Show; showmessage('第一种方法:'); f := Application.FindComponent(Formname); if f <> nil then Tform(f).Hide; showmessage('第二种方法:'); for I := 0 to Screen.FormCount - 1 do if Screen.Forms[i].Name = formname then begin Screen.Forms[i].Show; break; end; end;也可以用findwindow(..
还有更好的方法: form.show G_formName := form.name; G_formindex := Form.ComponentIndex; ==== if Screen.Forms[G_FormIndex].name = G_formName then Screen.Forms[G_formIndex].show;
if form.active then begin showmessage('form已打开'); end else form.show;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Form2) then
begin
Form2:= TForm2.Create(Application);
Form2.Show;
end
else
SetActiveWindow(Form2.Handle);
end;在Form2中:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2.Free;
Form2:= nil;
end;
f: tobject;
i: integer;
const
formname = 'Form2';
begin
form2.Show;
showmessage('第一种方法:');
f := Application.FindComponent(Formname);
if f <> nil then
Tform(f).Hide; showmessage('第二种方法:');
for I := 0 to Screen.FormCount - 1 do
if Screen.Forms[i].Name = formname then
begin
Screen.Forms[i].Show;
break;
end;
end;也可以用findwindow(..
form.show
G_formName := form.name;
G_formindex := Form.ComponentIndex;
====
if Screen.Forms[G_FormIndex].name = G_formName then
Screen.Forms[G_formIndex].show;
begin
showmessage('form已打开');
end
else
form.show;