AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[VCL] (Jv)StringGrid vs Windows Design

Ein Thema von Root2k · begonnen am 2. Okt 2012 · letzter Beitrag vom 4. Okt 2012
Antwort Antwort
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#1

[VCL] (Jv)StringGrid vs Windows Design

  Alt 2. Okt 2012, 14:50
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.
Miniaturansicht angehängter Grafiken
stringgrids_windowsdesign.png  
  Mit Zitat antworten Zitat
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#2

AW: [VCL] (Jv)StringGrid vs Windows Design

  Alt 4. Okt 2012, 08:05
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.

Geändert von Root2k ( 4. Okt 2012 um 09:04 Uhr)
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: [VCL] (Jv)StringGrid vs Windows Design

  Alt 4. Okt 2012, 08:49
EDIT: OK Problem falsch erkannt
Matthias
Das Leben ist eines der härtesten.

Geändert von matashen ( 4. Okt 2012 um 08:51 Uhr)
  Mit Zitat antworten Zitat
Root2k

Registriert seit: 7. Jun 2011
Ort: Ulm
49 Beiträge
 
Delphi XE Enterprise
 
#4

AW: [VCL] (Jv)StringGrid vs Windows Design

  Alt 4. Okt 2012, 09:23
Delphi-Quellcode:
uses
...
  Themes;

procedure TfrmDesign.FormShow(Sender: TObject);
begin
  ThemeServices.OnThemeChange := ThemeChanged;
end;

procedure TfrmDesign.ThemeChanged(Sender: TObject);
begin
  ShowMessage('Design wurde geändert.');
end;
Damit hat sich das Thema (für mich) wohl erledigt.
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.

Geändert von Root2k ( 4. Okt 2012 um 09:45 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz