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 DrawText & SetTextColor Textfarbe ändern (https://www.delphipraxis.net/52187-drawtext-settextcolor-textfarbe-aendern.html)

turboPASCAL 25. Aug 2005 06:59


DrawText & SetTextColor Textfarbe ändern
 
Moin,

ich bin gerade dabei 'ne Komponente umzumodeln. Problem dabei ist dass sich die Farbe der Caption des Panels nicht mit diesem Code ändern lässt.
Delphi-Quellcode:
// ...
  SetTextColor(Canvas.Handle, Font.Color);

  OldBkMode := SetBkMode(Canvas.Handle, TRANSPARENT);
  DrawText(Canvas.Handle, PChar( Self.Caption), Length(Caption),
          aRect, TextFlag);
  SetBkMode(Canvas.Handle, OldBkMode);
// ...
Wenn ich bei SetTextColor die Farbe direkt Angebe, also z.B. clRed wird das auch korrekt umgesetzt. Font.Color enthält aber die akt. Farbe.
Habe ich was übersehen ?

negaH 25. Aug 2005 08:31

Re: DrawText & SetTextColor Textfarbe ändern
 
Delphi-Quellcode:
DC := Canvas.Handle;

SetTextColor(DC, ColorToRGB(Font.Color));
1.) das Canvas.handle in eine lokale Variable DC: hDC zwischenspeichern. Canvas.Handle ist ein Property und macht intern viel mehr als nur ein Handle zurückzugeben, es kommt beim ständigen Zugriff mit Canvas.Handle zu Inkonsistenzen.

2.) ColorToRGB() benutzen.


Gruß Hagen

turboPASCAL 25. Aug 2005 08:45

Re: DrawText & SetTextColor Textfarbe ändern
 
Hm, hatte mich schon gewundert, die Farben clRed, clBlue usw. wurden dargestellt aber clMenuHighlight als Systemfarbe nicht.

...tazächlich so wird es was... THX.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 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