![]() |
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:
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.
// ...
SetTextColor(Canvas.Handle, Font.Color); OldBkMode := SetBkMode(Canvas.Handle, TRANSPARENT); DrawText(Canvas.Handle, PChar( Self.Caption), Length(Caption), aRect, TextFlag); SetBkMode(Canvas.Handle, OldBkMode); // ... Habe ich was übersehen ? |
Re: DrawText & SetTextColor Textfarbe ändern
Delphi-Quellcode:
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.
DC := Canvas.Handle;
SetTextColor(DC, ColorToRGB(Font.Color)); 2.) ColorToRGB() benutzen. Gruß Hagen |
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 16:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz