delphi PageControl显示窗体
来源:互联网 发布:录屏软件破解版 编辑:程序博客网 时间:2024/05/16 05:05
delphi 使用PageControl嵌套显示窗体,需要必须实现两个部分:
1.创建标签页和创建窗体。
2.指定窗体关闭函数,该函数包含关闭当前标签页。
1.创建标签页和创建窗体。
//如果不存在就创建标签页和窗体,如果存在,就找到。
//PFormClass:要创建的窗体的类,CName:窗体的Cption;EName :窗体的Name
procedure TMainForm.CreateTabSheet(PFormClass: TFormClass;CName,EName:string);
const
MyTabSheetFirstName = 'MyTabSheet_';
var
MyForm:TForm;
MyTabSheet : TTabSheet;
MyTabSheetName :string;
begin
MyTabSheetName := MyTabSheetFirstName + EName;
//查找该标签页是否已经存在
MyTabSheet := TTabSheet(self.FindComponent(MyTabSheetName));
//不存在,就创建出新的标签页
if MyTabSheet = nil then
begin
try
//创建新标签页
MyTabSheet := TTabSheet.Create(self);
MyTabSheet.Name := MyTabSheetName;
MyTabSheet.PageControl := pgcMain;
MyTabSheet.Caption := CName;
MyTabSheet.Align := alClient;
//创建窗口
try
MyForm := PFormClass.Create(self);
myform.Name := EName;
MyForm.Parent := MyTabSheet;
MyForm.BorderStyle := bsNone;
MyForm.Top := 0;
MyForm.Left := 0;
MyForm.Width := MyTabSheet.Width;
MyForm.Height := MyTabSheet.Height;
MyForm.Align := alClient;
//关联窗体关闭时,执行的函数。
MyForm.OnClose := CloseTabSheet;
MyForm.Show;
except
FreeAndNil(MyForm);
Abort;
end;
except
FreeAndNil(MyTabSheet);
Exit;
end;
end;
//设置当前的标签页为活动页
pgcMain.ActivePage := MyTabSheet;
end;
2.指定窗体关闭函数,该函数包含关闭当前标签页。
//关闭窗体时,也关闭其所处的标签页
procedure TMainForm.CloseTabSheet(Sender: TObject; var Action: TCloseAction);
begin
if (sender as TForm).Parent <> nil then
begin
TTabSheet((sender as TForm).Parent).free;
//把关闭的标签页的前一页设为活动页
pgcMain.SelectNextPage(false);
abort;
end;
end;
3、右击可以选中当前页
procedure TMainForm.pgcMainMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
tabSheet :TsuiTabSheet;
begin
if mbRight = Button then
begin
pgcMain.ActivePage := pgcMain.Pages[pgcMain.IndexOfTabAt(X, Y)];
end;
end;
// 关闭当前页面
procedure TMainForm.mmiN23Click(Sender: TObject);
begin
if pgcMain.ActivePageIndex <> 0 then
begin
pgcMain.ActivePage.Free;
pgcMain.SelectNextPage(false);
end;
end;
// 关闭所有页面
procedure TMainForm.mmiN24Click(Sender: TObject);
var
i: integer;
begin
for i := 1 to pgcMain.PageCount - 1 do
begin
pgcMain.Pages[1].Free;
end;
end;
// 关闭其他页面
procedure TMainForm.mmiN25Click(Sender: TObject);
var
i, ActiveIndex: integer;
begin
// 当前页面是【首页】,则直接关闭其他页面
if pgcMain.ActivePageIndex = 0 then
begin
for i := 1 to pgcMain.PageCount - 1 do
begin
pgcMain.Pages[1].Free;
end;
end
else
begin
// 关闭当前页面前面的除【首页】的所有页面
for i := 1 to pgcMain.ActivePageIndex - 1 do
begin
pgcMain.Pages[1].Free;
end;
// 关闭当前页面后面的所有页面
for i := 2 to pgcMain.PageCount - 1 do
begin
pgcMain.Pages[2].Free;
end;
pgcMain.ActivePageIndex := 1;
end;
end;
- delphi PageControl显示窗体
- delphi PageControl显示窗体
- pagecontrol中显示窗体
- Delphi使用pageControl实现镶嵌窗体
- delphi PageControl
- Delphi 窗体居中显示
- Delphi 停靠技术的应用3(两个窗体停靠成PageControl样式, 分页停靠)
- Delphi 停靠技术的应用3(两个窗体停靠成PageControl样式, 分页停靠)
- Delphi 停靠技术的应用3(两个窗体停靠成PageControl样式, 分页停靠)
- Delphi显示和隐藏窗体
- delphi中显示第二个窗体
- DELPHI 让窗体不在任务栏显示
- PageControl页显示的控制
- Delphi 中 RadioGroup / pagecontrol 的使用
- Delphi pagecontrol和tabcontrol用法示例
- PageControl
- PageControl
- PageControl
- 数据结构——图的邻接表表示法
- JAVA技术的名词解释
- udev 和 mdev 总结
- (java 基础知识) Java 安全模式----(java .security包)
- java操作redis
- delphi PageControl显示窗体
- 数据结构——图的邻接矩阵表示法
- 请你编写一个统计《C++程序设计》课程的成绩。统计的内容包括最高分、最低分、平均分,以及在90100,80 89,70 79,60 69和60以下个分数段的人数
- 基于Android的小巫新闻客户端开发
- C++构造函数的继承
- #统计学# 笔记
- 数据结构——霍夫曼编码解码
- ubuntu 10.04 安装 Kscope 全过程
- [C++ Primer] 标准IO库