Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TEdit auf TTabSheet mit Themes (https://www.delphipraxis.net/179898-tedit-auf-ttabsheet-mit-themes.html)

Dalai 9. Apr 2014 18:37


TEdit auf TTabSheet mit Themes
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Delphi-Community,

Ich benötige schon wieder Hilfe bei einem (vermeintlich?) kleinen Design-Problem, das mit Themes zusammenhängt. Die Situation ist wie folgt: Eine Form, darauf ein TPageControl, auf diesem ein TTabSheet und auf diesem mehrere TEdits. Zwei der TEdits sind ReadOnly, eines davon hat BorderStyle=bsNone. Um die letzten beiden TEdits geht es, konkret um deren (Hintergrund)farbe: Siehe dieses Bild bzw. dasselbe Bild im Anhang (ist ein Testprojekt, das echte ist natürlich etwas komplexer ;)).

Wie kann ich erreichen, dass die TEdits die (Hintergrund)farbe des TabSheets benutzen, wenn Themes aktiviert sind? Je nach Theme gibt es ja noch einen Farbverlauf auf den TabSheets, wie auch auf dem Bild zu sehen ist. Und ja, ich brauche TEdits an den Stellen, denn erstens sieht das im Produktivprojekt besser/einheitlicher aus, und zweitens brauche ich eine Möglichkeit, um den angezeigten Text in die Zwischenablage zu kopieren.

Ich hab
  • mit ParentColor und SetWindowTheme rumprobiert: ändert gar nichts.
  • TTransEdit ausprobiert: wird zwar transparent, aber der Text verschwindet, wenn er selektiert ist, und sobald die TTransEdits ReadOnly sind, verhalten sie sich exakt wie TEdits.
Kann mir jemand den Weg zu den richtigen Suchbegriffen weisen? Hatte jemand schonmal eine solche Situation?

MfG Dalai

Dalai 13. Apr 2014 23:07

AW: TEdit auf TTabSheet mit Themes
 
Keiner ne Idee? Es würde mir schon reichen, wenn ich die Farbe des TabSheet im Bereich des TEdit irgendwie zuverlässig ermitteln könnte, um sie dem TEdit zuzuweisen. Aber selbst Versuche im OnActivate des Form funktionieren nur zufällig. Das Auslesen der Farbe in einen Timer zu packen, der im OnActivate aktiviert wird, funktioniert zwar, ist aber eher ein Würgaround.

Gibt's bessere Möglichkeiten?

MfG Dalai

Sir Rufo 14. Apr 2014 00:29

AW: TEdit auf TTabSheet mit Themes
 
Das hat nichts mit den TabSheets zu tun, sondern mit den Styles.

Sobald du Styles benutzt, werden solche Werte wie
Delphi-Quellcode:
Color
einfach überschrieben.

Einfach mal ausprobieren und ein Edit auf eine schnöde Form legen und ParentColor setzen.
Starten ohne Style -> so wie gewünscht
Starten mit Style -> Hintergrund ist so, wie vom Style vorgegeben

Dalai 14. Apr 2014 00:53

AW: TEdit auf TTabSheet mit Themes
 
Zitat:

Zitat von Sir Rufo (Beitrag 1255516)
Das hat nichts mit den TabSheets zu tun, sondern mit den Styles.

Natürlich hat das mit den TabSheets zu tun, weil es mir auch um den Farbverlauf geht.

Zitat:

Sobald du Styles benutzt, werden solche Werte wie
Delphi-Quellcode:
Color
einfach überschrieben.
Wird sie nicht. Ein TEdit auf einer Form mit ParentColor=False und Color=clBlue ist in jedem Fall blau, egal ob mit oder ohne Themes. Jedenfalls trifft das für XP zu. Aber auch bei Win7 ist das so (hab zwar nur ohne Aero probiert, nehme aber an, dass es mit Aero genauso ist).

Zitat:

Einfach mal ausprobieren und ein Edit auf eine schnöde Form legen und ParentColor setzen.
Starten ohne Style -> so wie gewünscht
Starten mit Style -> Hintergrund ist so, wie vom Style vorgegeben
Nö, ist er nicht. Respektive schon, aber TEdits haben in beiden Fällen die Farbe der Form und nicht die der TabSheets. Und genau deswegen hat das mit TabSheets zu tun.

MfG Dalai

Sir Rufo 14. Apr 2014 00:56

AW: TEdit auf TTabSheet mit Themes
 
Upps, Themes nicht Styles :oops:

Sag ja schon gar nichts mehr :duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 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 by Thomas Breitkreuz