TabPosition が「tpLeft」に設定された PageControl があります。そのプロパティを設定すると、タブのキャプションも垂直になりますが、これらのキャプションを通常の水平方向に表示したいので、TabHeight を変更しようとしましたが、幅が広くなり、テストはまだ垂直に表示されます。
どうすれば修正できますか。
DELPHI XE5 の使用
更新:このコードは機能します(「Ken White」に感謝します):
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) + 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;
しかし、これはそれを行うための「正しい方法」ですか?他に良い方法はありますか?