Autor Beitrag
Metschu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: So 10.07.11 20:53 
Hallo zusammen!

Ich möchte zur Laufzeit die Hintergrundfarbe des TDateTimePickers bei bestimmten Bedingungen ändern.

Problem ist nun, das die Farbänderung erst dann sichtbar wird, wenn ich auch das Datum ändere, also an der Komponente selbst eine Aktion ausführe.

"Update", "Refresh" und "Repaint" brachten keinen Erfolg.

Die Farbe wird über ".brush.color" geändert.

Hat jemand nen Tip?

Gruß

Torsten
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19338
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.07.11 22:08 
Was willst du jetzt ändern? Die Hintergrundfarbe (Color) oder die Schrifthintergrundfarbe (Brush.Color)? :gruebel:

Brush.Color ändert die Schrifthintergrundfarbe, wenn das nächste Mal ein Text im Control neu gezeichnet wird.

Wenn du wirklich den Hintergrund insgesamt ändern willst, musst du nur Color ändern, das hat mit dem Brush nichts zu tun...

Funktionieren tut das logischerweise nur ohne Manifest im Windows 9x Look, wenn du nicht möchtest, dass Windows das Zeichnen selbst im aktuellen Windows Theme übernimmt. Das sieht also dementsprechend schlecht aus. :nixweiss:
Metschu Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: Mo 11.07.11 08:54 
Ich möchte die Schrifthintergrundfarbe im "eingeklappten" Zustand ändern.

Die Farbe wird auch angenommen, wenn ich diese vorgebe. Wird die Farbe während der Laufzeit geändert, wird die Änderung aber erst sichtbar, wenn dasn Element "Aus-/Eingeklappt" wird bzw das wenn ich den Text (Datum) manuell ändere.

Jetzt habe ich nur die Eigenschaft "Color" geändert und dann klappts. "Brush.color" wirds nur wie oben beschrieben geändert.

Komischerweise gibt es Elemente, die man nur mit "Brush.color" ändern kann, andere nur mit "Color". Die Hilfe sagt aber bei beiden "Das es Farbe des Hintergrundes des Steuerelementes angibt..."

Naja, jetzt gehts wenigstens.
Kay E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 118



BeitragVerfasst: Di 12.07.11 13:53 
Nur mal blöd gefragt: In deiner Auflistung oben fehlt invalidate;. Hast du das schon probiert?