Einzelnen Beitrag anzeigen

Dabei-seit-Turbo-Pascal-2

Registriert seit: 19. Feb 2010
26 Beiträge
 
Delphi 11 Alexandria
 
#1

DBGRID skaliert falsch mit Designtime-Columns

  Alt 17. Feb 2018, 23:20
Meine Delphi-10.2.2-Anwendung enthält zahlreiche DBGRIDs. Bei 200% Skalierung unter Windows 10 werden einige Grids richtig skaliert, andere haben eine viel zu große Schrift. HighDPI ist aktiviert und Scaled ist true.

Ich habe jetzt herausgefunden, dass die DBGRIDs korrekt dargestellt werden, welche _keine_ zur Entwurfszeit zugewiesenen Spaltendefinitionen haben. Sobald zur Designtime Dbgrid.Columns definiert sind, wird die Schrift doppelt so breit und doppelt so hoch dargestellt. Das eigentliche Raster des DBGRID hat in beiden Fällen die richtige Größe. Die zu große Schrift wird vertikal abgeschnitten und führt horizontal zu doppelt so breiten Spalten. Die Gesamtbreite des DBGRID ist aber korrekt.

Meine aktuelle Lösung ist, zur Laufzeit im Form.OnCreate() die DBGrid.Font.Size, DBGrid.Titlefont.Size und von jeder Spalte die Column.Font.Size im Verhältnis 96 dpi zu aktueller Monitor-DPI zu setzen. Eine für alle DBGRIDs funktionierende Routine muss dafür erkennen können, ob eine Spaltendefinition manuell zur Designzeit oder automatisch zur Laufzeit erzeugt wurde. Habt Ihr eine Idee, wie ich das rauskriegen kann?
  Mit Zitat antworten Zitat