Forum: Programmieren allgemein
Delphi
by Delphi.Narium,
26. Nov 2021
dgColumnResize heißt: Die Feldern zugeordneten Spalten können in der Größe geändert oder verschoben werden. Anwender können in der Anzeige die Spaltenbreite ändern. Wenn Du mit der Maus in der Titelzeile die Spaltenbreite ändern kannst, sollte das ok sein.
lb.Caption := DBGrid_Trades.Columns.Field.AsString;
DBGrid_Trades.Columns.Width := lb.Width;
lb ist ein TLabel, bei dem AutoSize auf true...
Forum: Programmieren allgemein
Delphi
by Delphi.Narium,
26. Nov 2021
Müsste wohl DBGrid_Trades.Columns.Field.DataType heißen.
Forum: Programmieren allgemein
Delphi
by Delphi.Narium,
26. Nov 2021
Schön, dann ändern wir auch das:
procedure AutoSizeColumns(AGrid : TDBGrid);
var
i : Integer;
LColumn : TColumn;
LCanvas : TCanvas;
LField : TField;
begin
LCanvas := AGrid.Canvas;
for i := 0 to AGrid.Columns.Count - 1 do
Forum: Programmieren allgemein
Delphi
by Delphi.Narium,
26. Nov 2021
Naja, dann machen wir mal weiter und ergänzen die Routine: for i := 0 to DBGrid1.Columns.Count - 1 do
begin
case DBGrid1.Columns.Field.DataType of
ftString, ftWideString :
begin
DBGrid1.Columns.Width := DBGrid1.Canvas.TextWidth(DBGrid1.Columns.Field.AsString);
DBGrid1.Columns.Alignment := taLeftJustify;
end;
ftSmallint, ftInteger, ftWord,...
Forum: Programmieren allgemein
Delphi
by Delphi.Narium,
26. Nov 2021
@TiGü
jo, eindeutig ;-)
Soweit hab' ich halt mal wieder nicht gedacht.
Vorteil Deiner Version: Man muss sich nichtmal drum kümmern, ob die Schriftgröße, ... irgendwie passen.
Aber dann machen wir es noch ein bisserl kürzer ;-)
for i := 0 to DBGrid1.Columns.Count - 1 do
begin
DBGrid1.Columns.Width := DBGrid1.Canvas.TextWidth(DBGrid1.Columns.Field.AsString);