阅读664 返回首页    go 阿里云 go 技术社区[云栖]


Delphi使用pageControl实现镶嵌窗体

开发时需要把原来的几个功能集中整合到一个窗体,使用frame要重新写,而且一般前端都是继承查询和编辑两个基本窗体框架,好多和后台交互以及界面实现都写好了。这时使用pageControl实现镶嵌窗体,可以不改变基本框架。

procedure TForm5.Button1Click(Sender: TObject);
begin
  CreateForm;
end;

procedure TForm5.CreateForm;
var Form : TForm1; TabSheet : TTabSheet;
begin
  //查找该标签页是否已经存在
  //TabSheet := TTabSheet(self.FindComponent(''));

  try
    //创建新标签页
    TabSheet := TTabSheet.Create(self);
    TabSheet.PageControl := pgc1;
    TabSheet.Tag := 2;
    TabSheet.Align := alClient;
  except
    FreeAndNil(TabSheet);
    Exit;
  end;

  try
    //创建窗口
    Form := TForm1.Create(self);
    Form.Parent := TabSheet;
    Form.BorderStyle := bsNone;
    Form.Top := 0;
    Form.Left := 0;
    Form.Width := TabSheet.Width;
    Form.Height := TabSheet.Height;
    Form.Align := alClient;
    TabSheet.Caption := Form.Caption;
    //关联窗体关闭时,执行的函数。
    //Form.OnClose := CloseTabSheet;
    Form.Show;
  except
    FreeAndNil(Form);
    Abort;
  end;
  //设置当前的标签页为活动页
  pgc1.ActivePage := TabSheet;
end;


procedure TForm5.FormCreate(Sender: TObject);
begin
  CreateForm;
end;

设计时主窗体
162747_FZ39_2862751
设计时镶嵌窗体
162919_o2D5_2862751
运行效果
162959_7W7C_2862751

最后更新:2017-05-07 08:00:59

  上一篇:go 常见的排序算法
  下一篇:go Delphi ShareMem在dll中使用