AGB  ·  Datenschutz  ·  Impressum  







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

Label Schriftfarbe ändern

Ein Thema von Niklas · begonnen am 16. Feb 2020 · letzter Beitrag vom 17. Feb 2020
 
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
496 Beiträge
 
Delphi 12 Athens
 
#11

AW: Label Schriftfarbe ändern

  Alt 17. Feb 2020, 01:25
Ich denke, es ist vom Auto sogar so gemeint, dass die Farbe je nach Checked-State der CheckBox entweder rot oder (standard-)schwarz ist. Anders macht das für mich so keinen Sinn, wenn es nur in eine Richtung gehen soll. Somit wäre folgendes im OnChange-Ereignis sinnvoll:

Delphi-Quellcode:
if CheckBox1.IsChecked then
begin
  Label1.TextSettings.FontColor := TAlphaColors.Red; // Alternativ: TAlphaColorRec.Red
end else
begin
  Label1.TextSettings.FontColor := TAlphaColors.Black; // Alternativ: TAlphaColorRec.Black
end;
Wie du hier sehen kannst, befindet sich die Schriftfarbe, anders als von meinem Vorredner beschrieben, in der TextSettings-Eigenschaft. Zweitens mal benötigst du kein manuelles setzen der StyledSettings-Eigenschaft (was ich so, wie da beschrieben, auch nicht machen würde, da du ja nur die Schriftfarbe und nicht den Rest unbedingt deaktivieren willst). "FontColor" wird automatisch aus den StyledSettings heraus genommen, wenn du diese in den TextSettings manuell setzt.
Auch dürfte aufgefallen sein, dass ich oben vom OnChange-Ereignis anstelle des OnClick-Ereignisses sprach. Das war kein Versprecher, sondern volle Absicht. In FMX wird ein OnClick auch tatsächlich nur bei einem Klick ausgelöst, und nicht bei einem Ändern des IsChecked im Code. Auch ein Doppelklick würde dann zu falschen Ergebnissen führen, da er nur einmal ein OnClick aktiviert. Somit ist OnChange notwendig.



Ein kleiner Hinweis für Leute, die ihre eigene CheckBox schreiben wollen: Leider wird in FMX für das auslösen des OnChange-Ereignisses keine virtuelle DoChange o.ä. angeboten, die man überschreiben kann. Stattdessen wird dieses (wohl wichtigste Ereignis des Controls) direkt im privaten "SetIsChecked" aufgerufen, was nicht nur schlechter Stil ist, sondern auch wirklich die Arbeit beim Ableiten schwer behindern kann. Dafür habe ich einen QP-Eintrag verfasst, den ihr hier finden könnt.
Dennis
  Mit Zitat antworten Zitat
 


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 11: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