
VCL Styles - Delphi
Zdravím.
Bych mněl jen dotaz.
V Project - options - aplication - apparance si mohu přepnout vzhled programu.
Vypadá to docela dobře, jenže mi to překresluje i barevné texty v komponentách.
U některých komponentu pomůže v object inspektor - StyleElements vypnout překreslovaní fontu, ale u některých mám problém.
Hlavně bych to potřebovál pořešít s komponentou PageControl.
PageControl1.OwnerDraw:=true
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
var
sCaption : String;
iTop : Integer;
iLeft : Integer;
begin
sCaption := TPageControl(Control).Pages[TabIndex].Caption;
iTop := Rect.Top + ((Rect.Bottom - Rect.Top - Control.Canvas.TextHeight(sCaption)) div 2) + 1;
iLeft := Rect.Left + ((Rect.Right - Rect.Left - Control.Canvas.TextWidth (sCaption)) div 2) + 1;
if Active then
Control.Canvas.Font.Color := clRed
else
Control.Canvas.Font.Color := clBlack;
Control.Canvas.TextOut(iLeft,iTop,sCaption);
end;
Všechny záložky jsou černé, jen ta aktivní je červena.
Když však zapnu to překreslovaní vzhledu, nefunguje to a text je furt černý.
Pujde to nějak pořešit?
Děkují.
Jde to pořešit uživatelským vykreslováním. Je třeba použít DrawElement a pomocí něj vykreslovat záložky.
Jen pak vykresluješ komplet záložku.
Pokud totiž použiješ uživatelské styly, pak se vykreslování řídí pomocí stylů a už není možné do toho až tak zasahovat.
Případně použij komponentu TabControlEx, která má lepší podporu pro vykreslování