AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Das leidige Thema Buttonfarbe...

Ein Thema von calibra301 · begonnen am 27. Mai 2025 · letzter Beitrag vom 28. Mai 2025
Antwort Antwort
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
487 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 08:27
Kannst du bei XE8 nicht einen eigenen Style erstellen?
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.703 Beiträge
 
Delphi 12 Athens
 
#2

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 08:47
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
109 Beiträge
 
Delphi XE8 Professional
 
#3

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 09:40
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...
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
910 Beiträge
 
Delphi 12 Athens
 
#4

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 09:48
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.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
109 Beiträge
 
Delphi XE8 Professional
 
#5

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 10:01
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 !
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.703 Beiträge
 
Delphi 12 Athens
 
#6

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 10:15
Oh, ich hatte das so verstanden, dass du die Farbe des Buttons selbst ändern willst - nicht nur die Textfarbe.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
calibra301

Registriert seit: 20. Mär 2009
109 Beiträge
 
Delphi XE8 Professional
 
#7

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 11:19
Hallo Uwe,

Farbe wäre schon besser.
Oder ein Bitmap tauschen und der Text bleibt da.
Sieht auch schöner aus...
Siehe Bild...
Angehängte Grafiken
Dateityp: jpg Tasten.jpg (2,0 KB, 40x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.703 Beiträge
 
Delphi 12 Athens
 
#8

AW: Das leidige Thema Buttonfarbe...

  Alt 27. Mai 2025, 12:57
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;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.086 Beiträge
 
Delphi 12 Athens
 
#9

AW: Das leidige Thema Buttonfarbe...

  Alt 28. Mai 2025, 22:06
Oh, ich hatte das so verstanden, dass du die Farbe des Buttons selbst ändern willst - nicht nur die Textfarbe.
Hatte ich auch so verstanden und dann JVCL's JvTransparentButton empfohlen,
da man dort die Farbe des Buttons setzen kann.
Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 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