Hallo zusammen,
habe gerade gemeldet bekommen, dass nach der Umstellung von XE3 auf XE10 DBGrids nicht mehr korrekt angezeigt werden und habe bei der Analyse festgestellt, dass die erste Spalte zu schmal angezeigt wird.
Um sicherzustellen, dass es keine Randeffekte meinerseits sind habe ich folgendes getestet
- TDBgrid auf neues Form gelegt
- TUniQuery über TUniDataSource mit Grid verknüpft
- TUniQuery mit select (MsSQL) aktiviert bei dem erste Spalte ein VarChar(40) ist
- Im DBGrid Spalteneditor per Doppelklick geöffnet und bei geöffneter Query alle Felder hinzugefügt
- Feld 0 wird z.B. automatisch mit Width = 244 angelegt
- Starte ich nun das Programm ist alles in Ordnung. Spaltenbreiten sind OK
- Danach im Spalteneditor Width von Spalte 0 auf 120 gesetzt
- Starte ich nun das Programm ist die erste Spalte zu schmal.
- Frage ich die Spaltenbreite ab, wird sie mit 64 angegeben
- 64 ist die Standardbreite, die für alle Spalten angezeigt wird wenn ich Spalteneditor bei nicht geöffneter Query öffne
- Danach im Spalteneditor Width von Spalte 0 wieder auf 244 gesetzt
- Starte ich nun das Programm ist wieder alles OK
Fehler tritt auch auf, wenn Spaltenbreite größer 244
Setze ich die erste Spalte in OnCreate mit
dbgrid1.Columns[0].Width := 120;
funktioniert es
Setze ich andere Spalten im Spalteneditor, funktioniert es ebenfalls für diese Spalten
Getestet unter Win7 und mit Delphi
BDS Version 23.0.20618.2753
Da ich sehr viele Formulare mit DBGrids habe, wäre ich froh es gäbe eine zentrale Lösung und nicht die, dass ich die Breite in jedem OnCreate manuell korrigiere.
Danke
Gerd