delphi中子窗体通用打开函数

烈酒焚心 提交于 2020-03-26 07:03:37

没有用MDI类型,是用setparent来设置子窗体的,在主窗体上放置一个panel2做为子窗体的父容器。Main为主窗体。子窗体中最好在关闭和ondestory中写上代码,在Onclose中写action:=cafree ,在ondestory中写上childfrm=nil;

如下代码:

procedure CreateChildFrm(AForm:TCustomForm;const AFormClass:TFormClass);
function isExist():boolean;
var
  i:integer;
begin
  result:=False;
  for i :=0 to Screen.FormCount-1 do
  begin
    if Screen.Forms[i].ClassType=AFormClass then
    begin
      Result:=True;
      AForm:=TForm(Screen.Forms[i]);
      Break;
    end;
  end;
end;

begin
  if not isExist() then
  begin
    AForm:=AFormClass.Create(Main);
    Winapi.Windows.SetParent(AForm.Handle,Main.Panel2.Handle);
  end else
  begin
    ShowWindow(AForm.Handle,SW_MAXIMIZE);
    AForm.BringToFront;
  end;
   AForm.Show;
end;

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!