閱讀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中使用