Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Das leidige Thema Buttonfarbe... (https://www.delphipraxis.net/217236-das-leidige-thema-buttonfarbe.html)

calibra301 27. Mai 2025 08:16

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 ?

matashen 27. Mai 2025 08:27

AW: Das leidige Thema Buttonfarbe...
 
Kannst du bei XE8 nicht einen eigenen Style erstellen?

Uwe Raabe 27. Mai 2025 08:47

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.

calibra301 27. Mai 2025 09:40

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...

Gausi 27. Mai 2025 09:48

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 Github.

calibra301 27. Mai 2025 10:01

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 !

Uwe Raabe 27. Mai 2025 10:15

AW: Das leidige Thema Buttonfarbe...
 
Oh, ich hatte das so verstanden, dass du die Farbe des Buttons selbst ändern willst - nicht nur die Textfarbe.

calibra301 27. Mai 2025 11:19

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...

Uwe Raabe 27. Mai 2025 12:57

AW: Das leidige Thema Buttonfarbe...
 
Hier mal ein kurzes Video: https://app.screencast.com/yWgR7FeCt591P.

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;

freejay 28. Mai 2025 13:19

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.
Seite 1 von 2  1 2      

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