TButton -> Font -> Color
-
Hi,
ich habe folgendes Problem:
Ich will die Farbe des Textes in meinem Button ändern, aber das klappt nicht.
Wenn ich die Eigenschaft "Color" auf z.B. "clBlue" setze bleibt es trotzdem schwarz. ???Alle anderen sachen wie z.B. Size und Style kann ich setzen wie ich will und das wird sofort abgeändert, aber bei der Farbe bleibt er sturr.
Weiß jemand woran das liegt und wie ich das beheben kann?
Danke im Voraus
cu Errraddicator
-
Vielleicht stellst du es an der falschen eigenschaft eini. Im eigenschaftenfenster kannst du "font" mit klick auf das "+" aufklappen. dort kannst du schriftfarbe enstellen
-
Genau die habe ich ja eingestellt, aber es rührt sich nix.
Der Rest funktioniert ja komischerweise.
Also "Font" + "Style" + "fsBold" z.B.Nur die Farbe akzeptiert er irgendwie nicht.
Kapier ich irgendwie nicht.
ParentFont ist übrigens auf "false"
-
Hallo,
Der Text wird mit der API-Funktion "DrawText" geschrieben.
int DrawText( HDC hDC, // handle to device context LPCTSTR lpString, // pointer to string to draw int nCount, // string length, in characters LPRECT lpRect, // pointer to structure with formatting dimensions UINT uFormat // text-drawing flags );Da mußt Du mal in der API suchen, wie man die Font-Farbe ändert.
Nash
-
Hallo
Die Infos zu DrawText helfen da nicht weiter.
Die Farbe des Button-Textes wird duchr die Einstellungen der Windowsanzeige festgelegt. TButton stellt den Text also immer nach System dar. Wenn du das ändern willst, must du von TButton ableiten, und die Paint-Methode anpassen.
bis bald
akari
-
akari schrieb:
Hallo
Die Infos zu DrawText helfen da nicht weiter.
Die Farbe des Button-Textes wird duchr die Einstellungen der Windowsanzeige festgelegt. TButton stellt den Text also immer nach System dar. Wenn du das ändern willst, must du von TButton ableiten, und die Paint-Methode anpassen.
bis bald
akariSowas in der Art konnte ich mir schon denken...

Danke, aber das ist mir den Aufwand nicht wert, so wichtig isses auch nicht.Bis dann
Errraddicator
-
Hallo,
akari schrieb:
...Die Infos zu DrawText helfen da nicht weiter. ...
Also irgendwie ist es schwierig hier den genauen Weg zu finden, wieviel Infos man rausgeben darf. Erst bekommt man einen Anpfiff, weil man Lösungen rausgibt und nun gibt man nur Hinweise die darauf hinweisen sollen :
API-Hilfe :
The DrawText function uses the device context's selected font, text color, and background color to draw the text.... und nu is das auch nicht OK... wie gesagt, sehr schwierig.
OK : Das das hier "Da mußt Du mal in der API suchen, wie man die Font-Farbe ändert. " nicht geht, habe ich auch nur vermutet. Ich habe mir auch den TSpeedButton neu abgeleitet, was prinzipiell nicht so aufwendig ist. Deshalb war ich mit dem Problem nicht konfrontiert, die Farbe, eines mit "DrawText" geschriebenen Buttons, zu ändern.
Nash
-
Nash schrieb:
Hallo,
akari schrieb:
...Die Infos zu DrawText helfen da nicht weiter. ...
Also irgendwie ist es schwierig hier den genauen Weg zu finden, wieviel Infos man rausgeben darf. Erst bekommt man einen Anpfiff, weil man Lösungen rausgibt und nun gibt man nur Hinweise die darauf hinweisen sollen :
API-Hilfe :
The DrawText function uses the device context's selected font, text color, and background color to draw the text.... und nu is das auch nicht OK... wie gesagt, sehr schwierig.
Das war nicht so gemeint. Ich habe deinen Ansatz nicht durchschaut. Ich wollte nur sagen, das mit ein paar einfachen Einstellungen nichts zu machen ist.
OK : Das das hier "Da mußt Du mal in der API suchen, wie man die Font-Farbe ändert. " nicht geht, habe ich auch nur vermutet. Ich habe mir auch den TSpeedButton neu abgeleitet, was prinzipiell nicht so aufwendig ist. Deshalb war ich mit dem Problem nicht konfrontiert, die Farbe, eines mit "DrawText" geschriebenen Buttons, zu ändern.
Ableiten ist hier die Lösung, da sind wir uns ja einig. Allerdings ist es dann doch nicht nötig, die WinAPI-Funktion mit Device-Context zu nehmen, das kann man doch besser über die VCL-Methoden der Canvas-Objekte machen, im Detail mit TextOut().
War wirklich nicht persönlich gemeint.
bis bald
akari
-
Hallo,
@ akari :
Kein Problem...
Ableiten ist hier die Lösung, da sind wir uns ja einig. Allerdings ist es dann doch nicht nötig, die WinAPI-Funktion mit Device-Context zu nehmen, das kann man doch besser über die VCL-Methoden der Canvas-Objekte machen, im Detail mit TextOut().
Ja, das ist richtig.
[Edit]
Ich ging davon aus, daß Du "TBitBtn" oder "TSpeedButton" o.ä. benutzt. Du scheinst aber TButton" zu benutzen. Da trifft meine Aussage mit "DrawText" evtl. nicht zu.
[/Edit]Aber man kann ja auch"TBitBtn" nehmen, da geht's.

Nash