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;

 

posted on 2013-03-19 11:56  天上星  阅读(1594)  评论(0编辑  收藏  举报

导航