delphi中子窗体通用打开函数

没有用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;

 

你可能感兴趣的:(Delphi)