Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#2

AW: DBGrid1.Columns[0].Width:= .... / geht das auch automatisch?

  Alt 25. Nov 2021, 18:57
Ja, das geht, ungetestet ungefähr sowas:
Delphi-Quellcode:
// Im AfterOpen der Query, Table, ...
procedure TForm1.DatenbankomponentennameAfterOpen(DataSet: TDataSet);
var
  lb : TLabel;
  i : Integer;
begin
  lb := TLabel.Create(Self);
  lb.AutoSize := true;
  lb.ParentFont := true;
  // Wenn das DBGrid 'ne andere Schriftgröße hat, als das Formular:
  // lb.ParentFont := false;
  // lb.Font := DBGrid1.Font;
  // Damit werden die Spaltenbreiten an den Inhalt der ersten Zeile der Datenmenge angepasst.
  for i := 0 to DBGrid1.Columns.Count - 1 do begin
    lb.Caption := DBGrid1.Columns[i].Field.AsString;
    DBGrid1.Columns[i].Width := lb.Width;
  end;
  lb.Free;
end;
Alternative: Das DBGrid aus der JVCL nehmen, das bringt sowas und viele Vereinfachungen von Hause aus mit.

Geändert von Delphi.Narium (25. Nov 2021 um 23:24 Uhr) Grund: Schreibfehler ...
  Mit Zitat antworten Zitat