0

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;

しかし、これはそれを行うための「正しい方法」ですか?他に良い方法はありますか?

4

0 に答える 0