子窗体TChild嵌入应用
来源:互联网 发布:淘宝活动报名表格 编辑:程序博客网 时间:2024/06/04 18:46
unit ChildFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ExtCtrls, Menus;
type
TChildForm = class(TForm)
private
FAsChild: Boolean;
FTempParent: TWinControl;
protected
procedure CreateParams(var Params: TCreateParams); override; //覆盖原来窗体的方法,创建一个没有
//标题和边框的窗口
procedure Loaded; override; //设置窗体属性
public
constructor Create(AOwner: TComponent); overload; override; //用于创建一个普通窗体
constructor Create(AOwner: TComponent; AParent: TWinControl); reintroduce; overload;
//重载第一个构造器,需要传递两个参数,使窗体成为子窗口,AParent为其父窗体,如panel面板
// The method below must be overridden to return either the main menu
// of the form, or nil.
function CanChange: Boolean; virtual;
end;
var
ChildForm: TChildForm;
implementation
{$R *.DFM}
constructor TChildForm.Create(AOwner: TComponent);
begin
FAsChild := False;
inherited Create(AOwner);
end;
constructor TChildForm.Create(AOwner: TComponent; AParent: TWinControl);
begin
FAsChild := True;
FTempParent := aParent;
inherited Create(AOwner);
end;
procedure TChildForm.Loaded;
begin
inherited;
if FAsChild then
begin
align := alClient;
BorderStyle := bsNone;
BorderIcons := [];
Parent := FTempParent;
Position := poDefault;
end;
end;
procedure TChildForm.CreateParams(var Params: TCreateParams);
Begin
Inherited CreateParams(Params);
if FAsChild then
Params.Style := Params.Style or WS_CHILD;
end;
function TChildForm.CanChange: Boolean;
begin
Result := True;
end;
end.
其它窗体继承时应注意声明:
type
TNewChildForm := class( TChildForm );
关闭窗体时在内存中释放它:
a.处理onclose事件,并把Action参数设为caFree
Action := caFree ; //当关闭时释放窗体实例
b.处理ondestroy事件时把form1变量设为nil
if Assigned(form1) then
form1 := nil ;
这样可以防止Assigned()函数失败.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ExtCtrls, Menus;
type
TChildForm = class(TForm)
private
FAsChild: Boolean;
FTempParent: TWinControl;
protected
procedure CreateParams(var Params: TCreateParams); override; //覆盖原来窗体的方法,创建一个没有
//标题和边框的窗口
procedure Loaded; override; //设置窗体属性
public
constructor Create(AOwner: TComponent); overload; override; //用于创建一个普通窗体
constructor Create(AOwner: TComponent; AParent: TWinControl); reintroduce; overload;
//重载第一个构造器,需要传递两个参数,使窗体成为子窗口,AParent为其父窗体,如panel面板
// The method below must be overridden to return either the main menu
// of the form, or nil.
function CanChange: Boolean; virtual;
end;
var
ChildForm: TChildForm;
implementation
{$R *.DFM}
constructor TChildForm.Create(AOwner: TComponent);
begin
FAsChild := False;
inherited Create(AOwner);
end;
constructor TChildForm.Create(AOwner: TComponent; AParent: TWinControl);
begin
FAsChild := True;
FTempParent := aParent;
inherited Create(AOwner);
end;
procedure TChildForm.Loaded;
begin
inherited;
if FAsChild then
begin
align := alClient;
BorderStyle := bsNone;
BorderIcons := [];
Parent := FTempParent;
Position := poDefault;
end;
end;
procedure TChildForm.CreateParams(var Params: TCreateParams);
Begin
Inherited CreateParams(Params);
if FAsChild then
Params.Style := Params.Style or WS_CHILD;
end;
function TChildForm.CanChange: Boolean;
begin
Result := True;
end;
end.
其它窗体继承时应注意声明:
type
TNewChildForm := class(
关闭窗体时在内存中释放它:
a.处理onclose事件,并把Action参数设为caFree
Action := caFree ; //当关闭时释放窗体实例
b.处理ondestroy事件时把form1变量设为nil
if Assigned(form1) then
form1 := nil ;
这样可以防止Assigned()函数失败.
- 子窗体TChild嵌入应用
- 桌面嵌入子窗体
- c#-WinFrom子窗体嵌入主窗体
- cocos2d-x整合/嵌入Winform子窗体
- WinForm子窗体嵌入在父窗体的panel上
- WinForm子窗体嵌入到父窗体的Panel里
- 【喜科堂】在主窗体中嵌入子窗体
- asp.net 子窗体应用
- 将Cocos2d-X嵌入MFC的子窗体方法讲解
- cocos2d-X 2.0嵌入MFC的子窗体的方法
- WinForm程序如何将子窗体嵌入到父窗体的Panel里
- WinForm中如何实现嵌入form窗体(panel与子窗体)
- 嵌入窗体之桌面嵌入
- 嵌入窗体之桌面嵌入
- 窗体的嵌入
- Cocos2d-X游戏工具开发之一:将Cocos2d-X嵌入MFC的子窗体方法讲解
- Cocos2d-X 2.0嵌入MFC的子窗体的方法(1.0姐妹篇)
- Cocos2d-X游戏工具开发之一:将Cocos2d-X嵌入MFC的子窗体方法讲解
- 正则表达式详解
- 使窗体尺寸最小
- Windows XP 下使用IIS5.1
- 制作没有边框的窗体,并可移动
- How to use XY chart of JFreeChart? Or any other choice?!
- 子窗体TChild嵌入应用
- java读取oracle的存储过程
- window下用命令创建共享连接
- 什么是CDN,大型门户网站的cdn部署
- 读取txt.sql
- 需求分析的20条法则 (ZT)
- ASP.NET-GridView的分页功能
- 安全应急响应流程
- 岁月悠悠