很简单,你可以利用form的hint来判断,
例如:
1. base_deviceTypeForm := Tbase_deviceTypeForm.Creat(application);
base_deviceTypeForm.hint:='a';然后在生成的时候判断一下hint就可以了!
例如:
1. base_deviceTypeForm := Tbase_deviceTypeForm.Creat(application);
base_deviceTypeForm.hint:='a';然后在生成的时候判断一下hint就可以了!
begin
base_deviceTypeForm := Tbase_deviceTypeForm.Creat(self);
base_deviceTypeForm.Show;
end;
在base_devicetypeform的onclose里
action:=cafree;
在base_devicetypeform的ondestroy里
base_devicetypeform:=nil
2、在主窗内定义一function
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;
3、调出子窗时用
procedure TfrmMain.N3Click(Sender: TObject);
begin
showform(Tfrmcbywcl);//frmcbywcl为子窗的name
end;
查找子窗休是否存在函数:
function checkMDIChildform(formname:string):boolean;
//formname:为要创建的子窗体名称;
var i:integer;
begin
result:=false;
for i:=0 to mainFrm.MDIChildCount -1 do
begin
if uppercase(mainFrm.MDIChildren[i].Name)=uppercase(formname) then
begin
result:=true;
break;
end;
end;
end;procedure TMainFrm.N7Click(Sender: TObject);
begin
if checkMDIChildform('MaterialFrm') then
MaterialFrm.WindowState:=wsMaximized
else MaterialFrm:=TMaterialFrm.Create(application);
end;