![]() |
Das leidige Thema Buttonfarbe...
Hallo,
im Rahmen meiner Verabschiedung von den Alphaskins steht die nächste Hürde an. Die GUI der Anwendung war immer ein Spiegelbild eines externen Bedienteils mit beleuchteten Knöpfen. War der Knopf aktiv hat er geleuchtet. Der Button wurde gemäß dem Knopf auf Up oder Down geschaltet und hatte bei Down eine Farbe. Der TsButton in Alphaskins war somit über die Eigenscht Up/down markiert und gut erkennbar. Forum durchforstet -> Farbe von TButton ist Sache von Windows... OK. Gängige Tips -> In der Regel SpeedButton oder BitBtn benutzen. Ja, da kann ich zumidestens die FontColor ändern. Nachteil -> Sobald ich einen Style drauflege ist wieder Essig. Farbe wird ignoriert. Nach den Erfahrungen mit Alphatools möchte ich am liebsten keine Experimente mehr mit ext. Komponenten machen.. :-( Leider bin ich selbst nicht in der Lage ein Derivat vom TButton zu bauen der die Eigenschaft "Color" benutzen würde. Gibts irgendwas was das kann und sich mit den Styles verträgt ? |
AW: Das leidige Thema Buttonfarbe...
Kannst du bei XE8 nicht einen eigenen Style erstellen?
|
AW: Das leidige Thema Buttonfarbe...
Da du ja sowieso VCL-Styles verwendest, kannst du dem Button über das Property StyleName einen anderen Style zuweisen als dem Rest des Forms. Der Style muss nur unter Erscheinungsbild mit ausgewählt sein.
|
AW: Das leidige Thema Buttonfarbe...
Hallo,
das wäre natürlich eine Idee. Mal sehen wie performant das ist weil teilweise in einer Schleife bis zu 60 Buttons umgeschaltet werden. Ist aber nicht meine Woche. Hab heute morgen den 12.3er Patch installiert. Hab den Designer vorher nie verwendet. Dateiversion 29.0.53571.9782 Startet mit diversen Zugriffsverletzungen... |
AW: Das leidige Thema Buttonfarbe...
Vielleicht bringt dich auch schon die Eigenschaft StyleElements des Buttons weiter. Wenn du da seFont rausnimmmst, könnte das schon die FontColor richtig setzen.
Ansonsten: Wenn man Spezialwünsche bei Buttons hat, kommt man kaum an eigenen Komponenten vorbei, denke ich. Für meinen mp3-Player habe ich mir einen TSkinButton gebastelt (bei TBitBtn gespickt). Da kann ich jetzt z.B. über eine ImageList Grafiken für den Hintergrund angeben (normal, Highlight, pressed, disabled), oder auch den Button transparent anzeigen, so dass man nur das Glyph/Icon sieht. Eine Caption brauch ich nicht, daher fehlt die in dem Code. Ebenso ist das Glyph an sich fix (bzw. die Properties dafür sind nicht published). Kannst ja mal reinschauen, aktuelle Entwicklung auf ![]() |
AW: Das leidige Thema Buttonfarbe...
Hallo Gausi,
das mit den Style Elements hat funktioniert. Textfarbe nun frei wählbar und die restlichen Texteigenschaften vermutlich auch. Bevor ich ein neues Control baue was ich noch nie gemacht habe versuche ich mich in der Richtung mal. Danke ! |
AW: Das leidige Thema Buttonfarbe...
Oh, ich hatte das so verstanden, dass du die Farbe des Buttons selbst ändern willst - nicht nur die Textfarbe.
|
AW: Das leidige Thema Buttonfarbe...
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Uwe,
Farbe wäre schon besser. Oder ein Bitmap tauschen und der Text bleibt da. Sieht auch schöner aus... Siehe Bild... |
AW: Das leidige Thema Buttonfarbe...
Hier mal ein kurzes Video:
![]() Das Form verwendet den Style Charcoal Dark Slate und für den Down-State wird auf Golden Graphite umgeschaltet. Ich habe das bewusst auf Styles beschränkt, die bei Delphi dabei sind. Hier noch der relevante Code:
Delphi-Quellcode:
const
cAltStyle = 'Golden Graphite'; type TButtonHelper = class helper for TButton private function GetDown: Boolean; procedure SetDown(const Value: Boolean); public property Down: Boolean read GetDown write SetDown; end; function TButtonHelper.GetDown: Boolean; begin Result := not StyleName.IsEmpty; end; procedure TButtonHelper.SetDown(const Value: Boolean); begin if Value then begin Caption := 'On'; StyleName := cAltStyle; end else begin Caption := 'Off'; StyleName := ''; end; end; procedure TForm897.ButtonClick(Sender: TObject); { wird von beiden Buttons verwendet } begin var btn := Sender as TButton; btn.Down := not btn.Down; end; |
AW: Das leidige Thema Buttonfarbe...
Liste der Anhänge anzeigen (Anzahl: 1)
Also falls Du TMS-Komponenten verwendest/verwenden würdest, kannst Du den AdvGlowButton verwenden: Da kannst Du die Farben völlig frei einstellen - auch unterschiedlich für aktiv/inaktiv/gedrückt/nicht gedrückt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 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