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;

 

转载于:https://www.cnblogs.com/yagzh2000/archive/2013/03/19/2968873.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值