Delphi主从窗体调用的实现

来源:岁月联盟 编辑:exp 时间:2012-06-02

用delphi来制作一些客户端小工具还是比较方便的。我们通常在做一个软件的时候,首先要考虑的是窗体布局和窗体之间的互相调用问题。下面就是主从窗体的实施步骤:
第一步,打开【Delphi7】,新建一个Delphi工程,新建一个空白窗体命名为:【MainActivedForm】。
然后重写构造函数:
代码如下:
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TMainActivedForm = class(TForm)
  private
      FAsChild: Boolean;
    { Private declarations }
  public
    { Public declarations }
    FTempParent: TWinControl;
    constructor Create(AOwner: TComponent); overload; override;
    constructor Create(AOwner: TComponent; AParent: TWinControl); reintroduce; overload;
  end;
var
  MainActivedForm: TMainActivedForm;
implementation
{$R *.dfm}
 constructor TMainActivedForm.Create(AOwner: TComponent);
begin
  FAsChild := False;
  inherited Create(AOwner);
end;
constructor TMainActivedForm.Create(AOwner: TComponent; AParent: TWinControl);
begin
  self.BorderStyle := bsnone;
  self.Align := alclient;
  FAsChild := True;
  FTempParent := aParent;
 
  inherited Create(AOwner);
  setparent(AParent);
end;
end.
新建一个子窗体,窗体的名称是【JXConfigForm】,窗体的基类设置为  TJXConfigForm = class(TMainActivedForm)。
然后新建主窗体,并添加【MainActivedForm】的单元引用。
在主窗体上拖一个TbsSkinPanel控件,命名为【bsSkinPanel2】。
在主窗体中声明一个全局变量【aPnParent:TbsSkinPanel;】。
创建主窗体的FormCreate事件,事件代码如下:
procedure TMainForm.FormCreate(Sender: TObject);
begin
aPnParent := bsSkinPanel2;
 perform(WM_SIZE,SIZE_MAXIMIZED,0);
end;
在主窗体上放置一个按钮【bsSkinSpeedButton5】,添加按钮事件函数:
procedure TMainForm.bsSkinSpeedButton5Click(Sender: TObject);
begin
//调出页面
  if MainActivedForm <> nil then
    begin
      MainActivedForm.Free;
    end;
  MainActivedForm := TJXConfigForm.Create(application, apnParent);
  MainActivedForm.show;
end;
这样,主从窗体的调用就完成了。

 


摘自 XFeng信息科技工作室

图片内容