Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Delphi 11.2: Schriftfarbe bei einem TPanel ändern


heindaddel4 - So 10.12.23 16:13
Titel: Delphi 11.2: Schriftfarbe bei einem TPanel ändern
Hallo, ich möchte bei einem TPanel während der Laufzeit die Textfarbe ändern. Beispiel: Ich gebe berechnete Werte in dem TPanel paZahlAusgeben aus. Ist die Berechnung nicht korrekt, soll in dem TPanel paZahlAusgeben das Wort 'Fehler' in rot erscheinen. Bei der folgenden Zuweisung paZahlAusgeben.Font.Color := clred; erscheint das Wort 'Fehler' NICHT in rot.
Hast Du einen Tip für mich, wie ich dieses Problem beseitigen kann?
LG Hein

Moderiert von user profile iconTh69: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 11.12.2023 um 11:29
Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt


TurboMicha - So 10.12.23 17:00

Hallo,

bei mir funktionierte das mit dem Font.Color im Objektinspektor erst auch nicht.
Als ich aber den StyleName auf "Windows" geändert hatte, funktionierte es im Objektinspektor so wie es sollte. Selbst wenn der StyleName nur im Formular auf "Windows" gesetzt wird, funktioniert es im Objektinspektor.

Wenn die Eigenschaft Font.Color im Programm geändert wurde, funktionierte es auch ohne einen Style zu setzten.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button3Click(Sender: TObject);
var tst : integer;
begin

  tst := StrToInt(ediZahl.Text);

  if tst = 0 then begin
    panel1.Font.Color := clRed;
    panel1.Caption  := 'Fehler';
  end else begin
    panel1.Font.Color := clCaptionText;
    panel1.Caption := tst.ToString;
  end;
end;


Gruß
Michael.


jaenicke - So 10.12.23 19:50

Ich kopiere mal meine Antwort aus dem Doppelpost in der DP für spätere Leser:
Zitat:
Ein Panel ist dafür schlicht die falsche Komponente. Man bekommt es zwar hin, aber sinnvoller ist dafür z.B. TStaticText oder man legt ein TLabel auf ein TPanel.


heindaddel4 - Mo 11.12.23 19:50

Hallo, ich habe das Problem gefunden. Es liegt am Style 'Dark Mode' von Delphi. Im Style 'Window' von Delphi funktioniert alles normal.
LG Hein