![]() |
Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ä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
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Hallo,
bei der Eigenschaft 'StyleElements' 'seFont' abwählen sollte helfen. Gruß |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
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.
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Hallo, ich habe das Problem gefunden. Es liegt am Style 'Dark Mode' von Delphi. Im Style 'Window' von Delphi funktioniert alles normal. LG Hein
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
Ein Nachteil bei der Verwendung eines Panels zum Anzeigen eines Textes mit vom Standard abweichender Farbe (wie in diesem Fall) ist, dass alle Childs in dem Panel den geänderten Font erben solange ihr ParentFont = True ist. Es ist also genau die aktuelle Frage, die gegen eine Verwendung eines Panels zur Textausgabe spricht. Man kann jetzt argumentieren, dass man eben keine Childs in dem Panel hat - aber auch nie haben wird? |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Ich würde mich ja freuen, wenn die Caption nicht mehr standardmäßig gefüllt wird, bzw. wenn ShowCaption per Standard auf False stünde.
Fast nie wird die Caption von irgendwem benutzt, da Panel ja eigentlich keine Textanzeigekomponente, sondern eine Sammelkomponente für andere Komponenten ist. Für Text nimmt man TLabel oder TStaticText (oder auch mal ein TEdit ohne Rahmen, für selektierbaren/kopierbaren Text, siehe die Dateieigenschaften im Explorer) |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
Dazu gibt es eine Doku vom Hersteller (z.B. ![]() |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
OK: GExperts, Rename Components Expert. Für TPanel unter Other Properties Caption='' setzen. Das gleiche geht z.B. auch mit TEdit, da setze ich dann Text=''. Oder TLabel, mit Caption='', so dass man die direkt in diesem Dialog eingeben kann. Diese Funktion ist eine der ersten, die ich vor vielen Jahren zu GExperts beigetragen habe. Edit: Es gibt auch noch den Set Component Properties Expert: Darüber geht es vermutlich auch, aber der Rename Components Expert hat den Vorteil, dass man dort auch gleich den neuen Wert eingeben kann, wenn man das will. |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Wenn von Haus aus bereits leer, dann würde wohl niemand mehr auf die Idee kommen diesen Caption benutzen zu wollen. :stupid:
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
Kommt immer drauf an, wozu. Anwendungsfall: Ein Programm gibt eine Datei als Tabelle aus. Solange noch keine Datei geladen ist, zeigt man das Panel mit dem Text "Datei hier draufziehen" an. Zieht der User dann die Datei auf das Panel, wird ein Child-Control des Panels mit der Ausgabe gefüllt und mit align=alClient angezeigt. Das ist schlicht einfacher als nochmal ein zusätzliches Label draufzupacken, das dann hinterher noch mit dem Alignment kollidiert. |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Du kannst es ja immernoch so machen.
Und da du dann eh was Sinnvolles eintragen wirst, wird es dich nicht stören, wenn es vorher leer war. :angle: Keine Sorge, man kann mehrere Komponenten auf alClient stellen. Labels sind eh immer hinten (da sie sich auf den Canvas des Parents laden. Und schon braucht man nur noch das Visible der Anzeigekomponente (ChildControl) umstellen. |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Hi Nobody :cheer:
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Ich verwende ein TPanel routinemäßig zum reinen Anzeigen von Text, weil man durch die Bevel-Eigenschaft den Rand so gut als Struktur hervorheben und die Aufmerksamkeit dahin lenken kann. Vor allem praktisch finde ich das, wenn man so eine ganze Reihe von Informationen in einer zusammenhängenden Struktur präsentieren kann. Wie ich an zahllosen anderen Programmen auch in anderen Sprachen sehe, bin ich damit alles andere als allein.
Seit einiger Zeit kann man zwar auch einem Label eine Randstruktur mitgeben. Ich meine auch, dass die Dreidimensionalität der Bevel früher deutlich ausgeprägt gewesen wäre, oder irre ich mich da? Auf jeden Fall bin ich zu faul, um mich umzugewöhnen, sehe auch nicht so recht einen Grund dafür. Und tatsächlich: Warum hat ein Panel denn dann eine Caption?! Und dass der hiesige erlauchte Kreis sich penibel an alles hält, was Emba so vorsieht, das wäre mir aber sowas von neu. |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
|
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Zitat:
Es werden hier ja auch nur persönliche und oft eben auch subjektive Meinungen geäußert. Niemand muss das als Arbeitsanweisung umsetzen. |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
[meine Meinung]
Ich muß auch immer das "Caption" entfernen. Aber das stört mich nicht. :wink: Viel Besser wäre es, wenn die IDE mal die Properties nach CTRL-C dort einordnen würde, wo sie hingehören und nicht die "Struktur" zerstören. (z.B. immer private oder strict private...was anderes kann er ja nicht wissen)
Delphi-Quellcode:
...das nervt. :roll:
strict private
FBlubb: Integer; strict protected FBla: Boolean; public // neue Property strict private FBlubb: Integer; strict protected FBla: Boolean; public property Test: Boolean read FTest write FTest // nach CTRL-C strict private FBlubb: Integer; strict private FTest: Boolean; protected FBla: Boolean; public property Test: Boolean read FTest write FTest :zwinker: [/meine Meinung] |
AW: Delphi 11.2: Schriftfarbe bei einem TPanel während der Laufzeit ändern
Es kann ja jeder die Komponente wählen, die er oder sie möchte. Dabei werden oft auch Komponenten verwenden, die nicht unbedingt für den Zweck gedacht waren. Das ist ja auch in Ordnung.
Das ändert aber nichts daran, dass bestimmte Komponenten für bestimmte Zwecke entworfen wurden, eben z.B. TStaticText zur Textanzeige, auch zur Beschriftung von Eingabefeldern, mit definierten Rändern und Fokussierung z.B. eines zu der Beschriftung gehörenden Eingabefelds. Dass dabei oft die vertikale Zentrierung vergessen wurde (schon in der Windows API bei mehrzeiligem DrawText, für den sie zu faul waren DT_VCENTER zu implementieren), ist sicherlich richtig, wird aber auch oft gar nicht benötigt. Wenn man es benötigt, kann man natürlich TPanel verwenden, wenn man wiederum nicht einfach so mit Styles und Textfarben arbeiten können möchte und auch die Fokussierung nicht benötigt. Will man das, ist es einfacher, wenn man einfach ein TStaticText auf ein TPanel oder TGridPanel (mit 1 Zeile und 1 Spalte) legt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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