我是第一次接触Delphi (同样,我在1994年使用过Delphi )。我现在有了Delphi 2009 Pro。
来自Java的我发现对象继承非常晦涩难懂。
我的用户想要标签页,标签在左边。但是,TPageControl不允许更改选项卡标签的方向或方向。他们希望标签上的单词在字母旋转的情况下从上到下阅读,这样它们就处于“正常”方向。标签在左边,标签从下往上读,字母旋转90度。向左倾斜,并且有向左倾斜头部来阅读标签的趋势。我发现了一些对标准TPageControl VCL的增强,它们为悬停和活动添加了图像、文本和颜色更改,但没有允许在选项卡上操纵字体方向或方向。
页面控件表格应该看起来像这样:
P
一个
G
E
1
P
一个
G
E
2
P
一个
G
E
3.
以此类推。
发布于 2009-04-20 18:23:03
1.)设置TPageControl属性:
TabPosition := tpLeft;
OwnerDraw := True;
TabWidth := 180; //set to any adequate value because
// TPageControl doesn't have a measure event handler 2.)使用以下OnDrawTab代码:
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
I: Integer;
PageControl: TPageControl;
TextFormat: TTextFormat;
Text: string;
TextRect: TRect;
begin
PageControl := Control as TPageControl;
Text := PageControl.Pages[TabIndex].Caption;
for I := Length(Text) - 1 downto 1 do
begin
Text := Copy(Text, 1, I) + sLineBreak + Copy(Text, I+1, MaxInt);
end;
TextRect := Rect;
TextRect.Left := TextRect.Left + 5;
TextRect.Top := TextRect.Top + 3;
TextFormat := [tfCenter];
PageControl.Canvas.TextRect(
TextRect,
Text,
TextFormat
);
end;3.)编译,start and enjoy!
发布于 2009-04-20 18:45:34
这不是一个DIY的答案,但也想指出Delphi是一个基于组件的开发平台,有几个第三方VCL控件,在渲染和主题化控件方面提供了一些非常灵活的选项。
我自己用过的几个,我推荐:
:
HTH和好运
发布于 2009-04-20 18:14:31
正如X-Ray所说:你需要自己画标签。这并不是很难,我以前也这么做过,但是我还没有准备好要发布的代码。您将需要获取选项卡的画布并使用TextOut方法。
https://stackoverflow.com/questions/769285
复制相似问题