frmMain为主form, frmcbcx为子form且为动态创建procedure TfrmMain.showform(FormClass: TFormClass); var i: integer; begin for i := 0 to self.MDIChildCount - 1 do if (MDIChildren[i] is FormClass) then begin self.MDIChildren[i].BringToFront; // sendmessage(MDIChildren[i].handle,wm_syscommand,SC_RESTORE,0); MDIChildren[i].SetFocus; Exit; end; FormClass.Create(self); end; 调用则:procedure TfrmMain.N26Click(Sender: TObject); begin showform(Tfrmcbcx); end;
if form1 = nil then form1 := Tform1.Create(Application); form1.BringToFront;
var
i: integer;
begin
for i := 0 to self.MDIChildCount - 1 do
if (MDIChildren[i] is FormClass) then
begin
self.MDIChildren[i].BringToFront;
// sendmessage(MDIChildren[i].handle,wm_syscommand,SC_RESTORE,0);
MDIChildren[i].SetFocus;
Exit;
end;
FormClass.Create(self);
end;
调用则:procedure TfrmMain.N26Click(Sender: TObject);
begin
showform(Tfrmcbcx);
end;
form1 := Tform1.Create(Application);
form1.BringToFront;