Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Hintergrundfarbe des TabControls (https://www.delphipraxis.net/45441-hintergrundfarbe-des-tabcontrols.html)

noch_ein_hannes 6. Mai 2005 12:53


Hintergrundfarbe des TabControls
 
Hallo,

wie kann man bei dem Standard-TabControl die Hintergrundfarbe (hinter den Tabs) ändern?
Falls es gar nicht geht, welche Alternative gibt es? Ich möchte gerne Tabs auf einer Form plazieren. Das Page-Control scheidet dabei aus, denn ich möchte lediglich einen Memo-Text mit den Tabs ändern.

besten Dank!
Grüsse,
Hannes

Sharky 6. Mai 2005 13:02

Re: Hintergrundfarbe des TabControls
 
Hai Hannes,

meinst Du den effekt wenn Du diesen Code benutzt?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  TabControl1.Brush.Color := clRed;
end;

noch_ein_hannes 6. Mai 2005 13:12

Re: Hintergrundfarbe des TabControls
 
@Sharky: Hmmm, naja ....

Wenn ich Deinen Code ohne XP-Manifest benutze, dann ist das ganze Control rot.
Mit XP-Manifest blinkt der Hintergrund hinter den Tabs beim Starten nur mal kurz rot auf ... :-(

Bernhard Geyer 6. Mai 2005 13:21

Re: Hintergrundfarbe des TabControls
 
Zitat:

Zitat von noch_ein_hannes
Wenn ich Deinen Code ohne XP-Manifest benutze, dann ist das ganze Control rot.
Mit XP-Manifest blinkt der Hintergrund hinter den Tabs beim Starten nur mal kurz rot auf ... :-(

So ist halt das Manifest definiert das die einzelnen seiten Tansparent sind und die Farbe des Tabcontrols durchscheinen lassen :-)
Leg einfach nochmal ein panel (mit alClient) drüber und setze das auf Rot.

noch_ein_hannes 6. Mai 2005 13:37

Re: Hintergrundfarbe des TabControls
 
Hallo Bernhard,

wenn ich das mache, dann wird zwar das TabControl rot, aber ich möchte ja eigentlich nur diesen grauen Hintergrund (da wo keine Tabs sind) wegbekommen ....

Was mich auch wundert: Ohne Manifest sind die Tabs grau (und man kann es nicht ändern) und mit ist der Hintergrund grau - was man auch nicht ändern kann ...

noch_ein_hannes 6. Mai 2005 14:30

Re: Hintergrundfarbe des TabControls
 
Wofür ist denn wohl die Eigenschaft "OwnerDraw" gut? Wenn ich diese auf True stelle wird zwar alles so wie ich es möchte gezeichnet, allerdings hat die Schrift dann scheinbar auch die Hintergrundfarbe ....

Kann man hier jetzt irgendwie die Schriftfarbe ändern?

Sharky 6. Mai 2005 14:39

Re: Hintergrundfarbe des TabControls
 
Wenn Du OwnerDraw auf True setzt musst Du das Zeichen (Textausgabe) selber machen.
Schaue Dir mal das Ereigniss .OnDrawTab an. Dort kannst Du den Text dann ausgeben.

noch_ein_hannes 6. Mai 2005 14:56

Re: Hintergrundfarbe des TabControls
 
Zitat:

Wenn Du OwnerDraw auf True setzt musst Du das Zeichen (Textausgabe) selber machen.
Schaue Dir mal das Ereigniss .OnDrawTab an. Dort kannst Du den Text dann ausgeben.
Das ist dann aber sehr umständlich, also das mit OwnerDraw := true vergesse ich schnell mal wieder ...

Sharky 6. Mai 2005 15:04

Re: Hintergrundfarbe des TabControls
 
Zitat:

Zitat von noch_ein_hannes
....Das ist dann aber sehr umständlich, also das mit OwnerDraw := true vergesse ich schnell mal wieder ...

Warum den umständlich?
Das sollte den Text ausgeben:
Delphi-Quellcode:
procedure TForm1.TabControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
  Control.Canvas.TextOut(rect.Left+2,Rect.Top+2,TabControl1.Tabs[TabIndex]);
end;

noch_ein_hannes 6. Mai 2005 15:18

Re: Hintergrundfarbe des TabControls
 
Hmm, das ist ja doch nicht so schwer :-)

Danke Sharky, jetzt bin ich glücklich genug um weiterzukommen .... !


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz