Delphi中多标签页面的实现
2024-10-15 00:34:41
unit uMain; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzTabs, Menus; type
TFrmMain = class(TForm)
RzPageControl1: TRzPageControl;
MainMenu1: TMainMenu;
N1: TMenuItem;
N11: TMenuItem;
N21: TMenuItem;
N31: TMenuItem;
TabSheet1: TRzTabSheet;
procedure N11Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure RzPageControl1Close(Sender: TObject; var AllowClose: Boolean);
private
{ Private declarations }
public
procedure ShowDockForm(FormClass: TFormClass; dockCtrl: TRzPageControl ); end; var
FrmMain: TFrmMain; implementation uses
Unit1; {$R *.dfm}
{ TForm12 } procedure TFrmMain.N11Click(Sender: TObject);
begin
ShowDockForm(TForm1,RzPageControl1);
end; //procedure TFrmMain.N21Click(Sender: TObject);
//begin
// ShowDockForm(TForm2,RzPageControl1);
//end;
//
//procedure TFrmMain.N31Click(Sender: TObject);
//begin
// ShowDockForm(TForm3,RzPageControl1);
//end; procedure TFrmMain.RzPageControl1Close(Sender: TObject;
var AllowClose: Boolean);
begin
AllowClose := RzPageControl1.ActivePageIndex >;
end; procedure TFrmMain.ShowDockForm(FormClass: TFormClass; dockCtrl: TRzPageControl);
procedure ShowCaption(ParentCtrl: TWinControl; ACaption: string);
begin
if ParentCtrl is TRzTabSheet then
TRzTabSheet(ParentCtrl).Caption := ACaption;
end; var
i: Integer;
TabCtrl: TRzTabSheet;
Form: TForm;
begin
Screen.Cursor := crHourGlass;
try
for i := to Screen.CustomFormCount - do
if Screen.CustomForms[i] is FormClass then
begin
if (not(Screen.CustomForms[i]).Visible) then
(Screen.CustomForms[i]).Visible := True;
(Screen.CustomForms[i]).BringToFront;
(Screen.CustomForms[i]).SetFocus;
TabCtrl := TRzTabSheet(Screen.CustomForms[i].Parent);
ShowCaption(TabCtrl, Screen.CustomForms[i].Caption);
TRzPageControl(dockCtrl).ActivePageIndex := TabCtrl.PageIndex;
exit;
end; TabCtrl := TRzTabSheet.Create(dockCtrl); // dockCtrl
TabCtrl.PageControl := TRzPageControl(dockCtrl);
TRzPageControl(dockCtrl).ActivePageIndex := TabCtrl.PageIndex; Form := FormClass.Create(TabCtrl);
with Form do
try
ManualDock(TabCtrl);
ShowCaption(TabCtrl, Caption); Show;
Form.WindowState := wsMaximized;
Form.Align := alClient;
except
Free;
end; finally
Screen.Cursor := crDefault;
end;
end; end.
http://blog.csdn.net/diligentcatrich/article/details/8281965
最新文章
- Android 强烈推荐:程序员接私活那点事
- 为什么这些java接口没有抽象方法?浅谈Java标记接口
- Android 屏幕适配(二)增强版百分比布局库(percent-support-lib)
- Memcached笔记——(四)应对高并发攻击【转】
- linux 系统下配置安装 java jdk 图文流程
- C# 使用NPOI 实现Excel的简单导入导出
- UE4 保存为bitmap
- JVM学习--(四)垃圾回收算法
- Timeline高级扩展
- centos7设置httpd
- Android 右上角菜单栏
- [docker]通过阿里云源安装docker &;&; flannel不通问题解决(try this guy out)
- windows7下的一个好玩的,你绝对不知道
- Ajax 響應
- dva 知识点
- 函数的嵌套+nonlocal和global关键字(重点)
- 用python解析pdf中的文本与表格【pdfplumber的安装与使用】
- 进行web开发时应该考虑的架构性因素
- 使用FindBugs-IDEA插件找到代码中潜在的问题
- 西门子(SIEMENS)软件安装时需要重启的解决方法,regedit restart
热门文章
- leetcode_question_62 Unique Paths
- Oracle执行计划——处理一种并行hint不生效的情况
- Service初步了解
- leetcode先刷_Search in Rotated Sorted Array II
- Opencv2系列学习笔记2(图像的其它操作)
- Two-phase Termination
- CodeForces 189A 166E 【DP ·水】
- python模块 mysql-python安装(在ubuntu系统下)
- 同步机制Lock初学(转)
- WeCenter 社交化问答社区程序 | WeCenter 是一款知识型的社交化问答社区程序,专注于社区内容的整理、归类、检索和再发行