Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
27. Nov 2021
Das hatte ich auch gar nicht in Frage gestellt. Ich würde dann aber die Spaltenbreite auf DefaultWidth setzen, da diese das TField.DisplayWidth zur Berechnung heranzieht.
for I := 0 to DBGrid1.Columns.Count - 1 do
DBGrid1.Columns.Width := DBGrid1.Columns.DefaultWidth;
Ich halte nicht viel davon, die tatsächlichen Feldwerte der gesamten Tabelle auf ihre aktuelle Länge zu prüfen und...
Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
27. Nov 2021
Ist das nicht alles sehr kompliziert? Dafür gibt es doch TColumn.DefaultWidth? Das verwendet das DisplayWidth Property des Fields. Durch geeignete Werte dort (z.B. bei calculated fields) kann man die Spaltenbreite recht einfach steuern.
Wenn es denn tatsächlich von Hand gehen soll, bietet sich auch TCustomGrid.TextWidthToColWidth an. Das berücksichtigt wenigstens auch noch die Ränder links und...
Forum: Programmieren allgemein
Delphi
by Uwe Raabe,
26. Nov 2021
Das Problem dabei ist, dass du das für jeden Datensatz machen und dann jeweils für jede Spalte den Maximalwert ermitteln müsstest. Das kann unter gewissen Bedingungen schon mal recht unperformant werden.