Announcement

Collapse
No announcement yet.

Textfarbe in TabSheet ändern???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Textfarbe in TabSheet ändern???

    Hallo,

    gibt es eine Möglichkeit die Textfarbe einzelner TabSheets anzupassen??

    Vielen Dank

  • #2
    Eine neue Komponente mit neuen Farben für Tabsheets, die den Focus haben.<br>
    <br>
    unit APgeCtrl;<br>
    <br>
    interface<br>
    <br>
    uses<br>
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, CommCtrl;<br>
    <br>
    type<br>
    TAPageControl = class(TPageControl)<br>
    private<br>
    procedure AutoInitialize;<br>
    protected<br>
    procedure DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean); override;<br>
    public<br>
    constructor Create(AOwner: TComponent); override;<br>
    published<br>
    { Published-Deklarationen }<br>
    end;<br>
    <br>
    procedure Register;<br>
    <br>
    implementation<br>
    <br>
    procedure Register;<br>
    begin<br>
    RegisterComponents('NeueKompos', [TAPageControl]);<br>
    end;<br>
    <br>
    procedure TAPageControl.AutoInitialize;<br>
    begin<br>
    OwnerDraw := True;<br>
    end;<br>
    <br>
    constructor TAPageControl.Create(AOwner: TComponent);<br>
    begin<br>
    inherited Create(AOwner);<br>
    AutoInitialize;<br>
    end;<br>
    <br>
    { Die Methode DrawTab zeichnet ein Register. }<br>
    <br>
    procedure TAPageControl.DrawTab(TabIndex: Integer; const Rect: TRect; Active: Boolean);<br>
    { Beschreibung<br>
    Überschreiben Sie DrawTab in einer abgeleiteten Klasse, um das Zeichnen von Registern zu steuern.<br>
    TabIndex ist der Index des Registers, das gezeichnet werden soll.<br>
    Rect ist der Bereich, in dem das Register gezeichnet werden soll.<br>
    Active gibt an, ob das Register aktiviert ist.<br>
    Mit der Eigenschaft Canvas wird das Register ausgefüllt.<br>
    }<br>
    var<br>
    R : TRect;<br>
    hi: TTCHitTestInfo;<br>
    MouseOnTab : integer;<br>
    MouseKoord : TPoint;<br>
    FontFarbe : TColor;<br>
    begin<br>
    R := Rect;<br>
    with canvas do begin<br>
    FontFarbe := clWindowText;<br>
    if Active and Focused then begin<br>
    Brush.Color := NeueFocusFarbe; // Was ihr
    wollt<br>
    FillRect(Rect);<br>
    DrawFocusRect(Rect);<br>
    FontFarbe := NeueFocusFontFarbe; // Was ihr wollt<br>
    end;<br>
    if HotTrack then begin<br>
    MouseKoord := ScreenToClient(Mouse.CursorPos);<br>
    hi.pt.x := MouseKoord.X;<br>
    hi.pt.y := MouseKoord.Y;<br>
    hi.flags := 0;<br>
    MouseOnTab := Perform(TCM_HITTEST, 0, longint
    (@hi));<br>
    if MouseOnTab=TabIndex then FontFarbe :=
    clBlue;<br>
    end;<br>
    Inc(R.Top, 3);<br>
    Font.Color := FontFarbe;<br>
    if Active then begin<br>
    inherited DrawTab(TabIndex, Rect, Active);<br>
    Font.Style := [fsBold];<br>
    end;<br>
    DrawText(Handle,PChar(Pages[TabIndex].Caption),Length
    (Pages[TabIndex].Caption),R,DT_CENTER);<br>
    end;<br>
    end;<br>
    <br>
    end.<br&gt

    Comment


    • #3
      Hallo Klaus,

      wieviel Antworten auf Deine Frage willst Du denn noch? Fast in jedem Forum hast Du diese Frage gestellt.

      mfg Klaus-Pete

      Comment

      Working...
      X