AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Label Schriftfarbe ändern

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

Registriert seit: 16. Feb 2020
1 Beiträge
 
#1

Label Schriftfarbe ändern

  Alt 16. Feb 2020, 20:55
Delphi-Version: 10.3 Rio
Guten Tag,
Ich habe ein Problem mit Delphi. Ich möchte die Farbe des Textes auf rot ändern, wenn eine Checkbox aktiviert ist.

Delphi-Quellcode:
If CheckBox1.IsChecked = true then
           begin
             Label1.Text:='Rot';
             ...
           end;
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Label Schriftfarbe ändern

  Alt 16. Feb 2020, 20:59
Delphi-Quellcode:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 if CheckBox1.Checked then
  Label1.Font.Color := clRed
 else
  Label1.Font.Color := clBlack;
end;
Lass woas hier am besten sofort sein! If CheckBox1.IsChecked = true then Und bevor du das falsch verstehst: CheckBox1Click ist das OnClick-Event von CheckBox1.

Geändert von DieDolly (16. Feb 2020 um 21:25 Uhr)
  Mit Zitat antworten Zitat
Alt 16. Feb 2020, 21:40     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Label Schriftfarbe ändern

  Alt 16. Feb 2020, 21:46
if CheckBox1.IsChecked then Wo habt ihr dieses IsChecked her? Das gibt es bei mir nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Label Schriftfarbe ändern

  Alt 16. Feb 2020, 21:50
Schon mal die Codevervollständigung probiert? CgeckBox1.Is... und dann gucken, was dir vorgeschlagen wird?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Label Schriftfarbe ändern

  Alt 16. Feb 2020, 21:52
IsRightToLeft und IsImplementorOf kommen da bei mir. Und ja selbstverständlich verwende ich die Codevervollständigung.
  Mit Zitat antworten Zitat
Alt 16. Feb 2020, 21:52     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: Label Schriftfarbe ändern

  Alt 16. Feb 2020, 21:54
Das hätte eingangs vielleicht vom TE erwähnt werden sollen.
Bei so einer banalen Frage denkt man direkt an einen Anfänger, der mit dem normalen Delphi nicht klar kommt. Und so liest es sich auch.
  Mit Zitat antworten Zitat
Alt 16. Feb 2020, 22:06     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Label Schriftfarbe ändern

  Alt 16. Feb 2020, 23:24
Aber es gibt Checked in der VCL oder so ähnlich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
481 Beiträge
 
Delphi 11 Alexandria
 
#8

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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz