ChromeTabs 控件占据 Form.Caption
开源的 ChromeTabs 控件的 Tab 的形状比 Delphi 默认的好看,并且包含了关闭按钮,也可以在上面摆放其它按钮。它模拟了 Chrome 浏览器的标签。在 Github 可以下载。
普通情况:在一个 Form 上拖放一个 ChromeTabs 过来,置顶,它就是普通的一个 Form 内部的一个页标签控件。
模拟 Chrome 浏览器:页标签占据 Form 的 Caption 部分。现在的 Edge 浏览器也是这样的设计。
实现方法
- Interface 部分和 uses 部分,增加:
interface
{$if CompilerVersion >= 21.0}
{$DEFINE USE_GLASS_FORM}
{$ifend}
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, ChromeTabs,
ChromeTabsTypes,
ChromeTabsUtils,
ChromeTabsControls, {$IFDEF USE_GLASS_FORM}ChromeTabsGlassForm,{$ENDIF}
ChromeTabsClasses;
- interface 部分,增加编译器指令;
- uses 部分增加对 ChromeTabs 的几个单元的引用,其中有一个单元的引用加上编译器指令;
- 定义一个新的 Form Type:
type
TFormType = {$IFDEF USE_GLASS_FORM}
TChromeTabsGlassForm
{$ELSE}
TForm
{$ENDIF};
- 修改当前 Form 的定义:
TForm1 = class(TFormType)
ChromeTabs1: TChromeTabs;
procedure FormCreate(Sender: TObject);
procedure ChromeTabs1NeedDragImageControl(Sender: TObject; ATab: TChromeTab;
var DragControl: TWinControl);
private
{ Private declarations }
public
{ Public declarations }
end;
- Form1.OnCreate 部分增加代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
{$IFDEF USE_GLASS_FORM}
Self.ChromeTabs := ChromeTabs1;
{$ENDIF}
end;
做完以上几个步骤,运行时,这个 Form1 就会变成类似 Chrome 浏览器一样,页标签占据 Form1.Caption 部分。

361

被折叠的 条评论
为什么被折叠?



