War*_* P 16 delphi dwm tabbed-interface aero-glass
我正在尝试在Windows 7中的Delphi应用程序中实现Google Chrome样式选项卡.
这个元素是:

我发现我必须克服的挑战是:
nor*_*aul 18
我刚刚为Delphi完成了一个非常完整的Chrome Tabs实现.

功能包括:
您可以在此处下载源代码和完整的演示/编辑器:http://code.google.com/p/delphi-chrome-tabs/
你不需要一个完整的玻璃窗,但你必须自己绘制标签,因为没有我知道的控件会给你你想要的精确外观.如果您使用当前表单的GlassFrame属性,请启用它并将顶部设置为您需要的选项卡高度,在此区域放置一个paintbox并使用GDI +调用手动绘制选项卡.EDN(http://cc.embarcadero.com/Download.aspx?id=26950)上提供了一个适用于此的好库.如果不使用GDI +,您将可以绘制到绘图框,但黑色将变为透明.使用GDI +,您可以任意颜色自由地绘制到玻璃上.例如:

资源:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, GdiPlusHelpers, GdiPlus, StdCtrls, ExtCtrls;
type
TForm6 = class(TForm)
pb1: TPaintBox;
procedure pb1Paint(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure TForm6.pb1Paint(Sender: TObject);
var
Graphics : IGPGraphics;
Brush: IGPSolidBrush;
FontFamily: IGPFontFamily;
Font: IGPFont;
Point: TGPPointF;
Pen: IGPPen;
begin
Graphics := Pb1.ToGPGraphics;
Brush := TGPSolidBrush.Create(TGPColor.Create(255, 0, 0, 0));
FontFamily := TGPFontFamily.Create('Consolas');
Font := TGPFont.Create(FontFamily, 12, FontStyleRegular, UnitPoint);
Point.Initialize(1, 0);
Graphics.TextRenderingHint := TextRenderingHintAntiAlias;
Graphics.DrawString('GDI+ Black Text', Font, Point, Brush);
Pen := TGPPen.Create(TGPColor.Create(255, 0, 0, 0));
Graphics.DrawLine(Pen, 0, 0, 200, 100);
end;
end.
Run Code Online (Sandbox Code Playgroud)
形成:
object Form6: TForm6
Left = 0
Top = 0
Caption = 'Form6'
ClientHeight = 282
ClientWidth = 418
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
GlassFrame.Enabled = True
GlassFrame.Top = 22
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object pb1: TPaintBox
Left = 0
Top = 0
Width = 313
Height = 105
OnPaint = pb1Paint
end
end
Run Code Online (Sandbox Code Playgroud)
编辑更新为反别名文本,使其看起来更好.