![]() |
AW: Stringgrid Spaltenbreite an Fenstergröße anpassen
Nur so eine Idee: Du merkst Dir je Spalte deren prozentuale Breite relativ zur Clientbreite des Grids. Nach dem Resize errechnest Du dann aus dieser Zahl die neue Breite.
|
AW: Stringgrid Spaltenbreite an Fenstergröße anpassen
Da ich mit meiner ersten Antwort neben den Anforderungen lag, hier die zweite Runde, gegf. kannst Du noch ein wenig feintunen.
Delphi-Quellcode:
Procedure SetDBGridColWidthAuto(Grid: TDBGrid);
var i: Integer; ws, w: Integer; dpl: Integer; CArray: Array of Integer; Function cWidth(idx: Integer): Integer; var f: TField; begin f := Grid.Columns[idx].Field; if Assigned(f) then Result := f.DisplayWidth else Result := Grid.Columns[idx].Width; CArray[idx] := Result; end; begin ws := 0; w := Grid.ClientWidth; if dgColLines in Grid.Options then dpl := 1 else dpl := 0; if dgIndicator in Grid.Options then w := w - 12; SetLength(CArray, Grid.Columns.Count); for i := 0 to Grid.Columns.Count - 1 do ws := ws + cWidth(i); for i := 0 to Grid.Columns.Count - 1 do begin Grid.Columns[i].Width := Round(w / ws * CArray[i] - dpl); end; end; procedure TForm3.FormResize(Sender: TObject); begin SetDBGridColWidthAuto(DBGrid1); end; |
AW: Stringgrid Spaltenbreite an Fenstergröße anpassen
Das konnte ich verwenden. Danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz