1、只要Create自己写好的子窗体就可以了
2、利用MainForm.ActiveMDIChild、MDIChildren、MDIChildCount判断就可以实现
2、利用MainForm.ActiveMDIChild、MDIChildren、MDIChildCount判断就可以实现
解决方案 »
- delphi关于aes加密的问题。
- inno setup 问题!如何取消卸载时的“卸载确认消息框”?
- 如设置让DBGrid的某一个字段只能输入数字是0到9
- 关于ShowWindow的2个问题!
- 用QReport控件制作报表,在报表预览时,能不能对其某些字段字体进行动态修改
- Midas TSocketConnection 三层 当网络断时的问题
- 求助.DLL中使用ADO的问题.
- 我會powerbuilder,能否介紹一本好的delphi入門的電子讀物。謝謝
- 如何让,Listbox中的前几行的底色和字的颜色有所不同
- 关于dblookupcombobox的问题
- 这段代码为什么通不过?正确的该如何?
- 关于元件编程?
VAR I:INTEGER;
begin
IF FORM1.MDIChildCount>0 THEN
BEGIN
FOR I:=0 TO FORM1.MDIChildCount-1 DO
BEGIN
FORM1.MDIChildren[I].Close;
END;
END;
FORM2:=TFORM2.CREATE(FORM1);
FORM2.SHOW;
end;
implements
uses Form2; //假设Form2为子窗口var
ChildForm:TForm2;//利用菜单命令打开子窗口
procedure TForm1.NewMenuItemClick(Sender:TObject)
begin
ChildForm:=TForm2.Create(self);
ChildForm.Show;
end;//关于第二个问题,当一个子窗口已经打开,那么当要新建窗口时,可先判断当窗口有没有建立,如果有,就显示,如果没有就建立,干嘛要关闭后再建立呢?
利用上面一段代码改一个就可以了
procedure TForm1.NewMenuItemClick(Sender:TObject)
begin
//如果该子窗口没有建立就建立一个子窗体
if TForm2(FindComponent('ChildForm'))=nil then
ChildForm:=TForm2.Create(self);
ChildForm.Show;
end;
end;