![]() |
[VCL] (Jv)StringGrid vs Windows Design
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
leider habe ich wieder mal ein Problem bei dem ich nicht weiterkomme... Wenn ich ein TStringGrid oder TJvStringGrid (JEDI) auf eine Form lege (und ein bisschen die Zellen mit Text fülle), die Anwendung anschließend starte und dann das Windows Design auf klassisch umstelle, bekomme ich eine sehr "gewöhnungsbedürftige" Darstellung des Grids (siehe Anhang). Wenn das jetzt immer nur passieren würde wenn ich das von Hand mache, dann wäre das kein Problem. Wie ihr aber vermutlich wisst, stellen manche Anwendungen (beim Start / temporär) das Design um - z.B. bei manchen Spielen. Ab dann ist meine Anwendung eigentlich nicht mehr bedienbar. Mein Testsystem: Windows 7 (ist aber bei XP auch so) Wenn ich den DrawingStyle von gdsThemed auf gdsClassic oder gdsGradient umstelle bleiben die richtigen Farben (halbwegs) erhalten. Ist ja auch irgendwo logisch, da die Zeichenarten nicht das Theme von Windows verwenden. Allerdings sehen diese beiden Arten nicht besonders schön aus. Nun meine Frage: Habt Ihr irgendeinen Lösungsvorschlag für das Problem - also dass ich, egal welches Design ich in Windows eingestellt hab, eine korrekte/schöne Darstellung erhalte? (Ansatz reicht) Mir fällt eigentlich nur das Folgende ein: - Anderen DrawingStyle verwenden (unschön). - Alles selber zeichnen (aufwendig). - Windows-Theme beim Start der Anwendung irgendwie wegspeichern und dann das verwenden - dass nicht immer bei Windows nachgeschaut werden muss. Aber ich hab keine Ahnung ob sowas geht. Im Internet konnte ich leider nichts passendes finden. Nebenbei: Embarcadero hat das selber wohl auch nicht so ganz hinbekommen (wenn die den Fehler denn kennen). Ich bekomm beim Umstellen des Designs immer wieder mal Fehlermeldungen in der IDE und auch hier sind die Farben falsch. |
AW: [VCL] (Jv)StringGrid vs Windows Design
Was mir noch aufgefallen ist:
Wenn ich nach dem Umstellen des Windows Designs (auf Klassisch) den DrawingStyle des StringGrids auf gdsClassic und anschließend wieder auf gdsThemed setze, bekomme ich wieder eine korrekte Darstellung. Jetzt müsste ich nur noch herausfinden, ob man irgendwie abfragen kann wenn das Windows Design verändert wird. Die Events WM_STYLECHANGED und WM_STYLECHANGING scheinen leider nicht zu funktionieren. |
AW: [VCL] (Jv)StringGrid vs Windows Design
EDIT: OK Problem falsch erkannt
|
AW: [VCL] (Jv)StringGrid vs Windows Design
Delphi-Quellcode:
Damit hat sich das Thema (für mich) wohl erledigt.
uses
... Themes; procedure TfrmDesign.FormShow(Sender: TObject); begin ThemeServices.OnThemeChange := ThemeChanged; end; procedure TfrmDesign.ThemeChanged(Sender: TObject); begin ShowMessage('Design wurde geändert.'); end; Immer gut wenn man (mehr oder weniger) selbst drauf kommt - nur blöd wenn das nicht vor dem Foreneintrag passiert. Naja... *closed* PS: Hinweis: Der Code ist wohl erst ab Delphi 7 nutzbar. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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