Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   [Firemonkey] Stringgrid AutoSize (https://www.delphipraxis.net/189828-%5Bfiremonkey%5D-stringgrid-autosize.html)

Devil1925 27. Jul 2016 11:10

[Firemonkey] Stringgrid AutoSize
 
Ich nutze folgenden Code um die Spaltenbreite meines Stringgrids anzupassen:

Delphi-Quellcode:
procedure TForm.GRDPaint(Sender: TObject; Canvas: TCanvas;
  const [Ref] ARect: TRectF);
var
  i: integer;
begin
  GRD.BeginUpdate;
  for i := 0 to GRD.ColumnCount - 1 do
    AutoSizeCol(GRD, i);
  GRD.EndUpdate;
end;

procedure TForm.AutoSizeCol(Grid: TStringGrid; Column: integer);
var
  i, W, WMax: integer;
begin
  WMax := 0;
  for i := 1 to (Grid.RowCount - 1) do begin
    W := round(Grid.Canvas.TextWidth(Grid.Cells[Column, i]));
    if W > WMax then
      WMax := W;
  end;

  if WMax*2 > Grid.Columns[Column].Width then
  begin
    Grid.Columns[Column].Width := WMax*2;
  end;
end;
Dies Funktioniert auch wunderbar, wenn in diesem Grid denn mehr als ein Eintrag vorhanden ist. Ist dort nur einer Vorhanden, wird stumpf die Standardbreite des Grids verwendet.

Weiss einer woran das liegt, oder besser noch einen Lösungsansatz?

Oder hat einer eine Bessere Idee wie man das AutoSize des Stringgrids ausführen kann?

Sir Rufo 27. Jul 2016 11:13

AW: [Firemonkey] Stringgrid AutoSize
 
Fang doch mal mit der Row 0 an :stupid:

Aviator 27. Jul 2016 11:15

AW: [Firemonkey] Stringgrid AutoSize
 
Warum fängst du in deiner AutoSizeCol() Procedure in der Schleife mit 1 an zu zählen? Ist das nur ein Header oder hast du dich da vertan? Oder übersehe ich was? Kenne mich mit FMX nicht so aus.

Roter Kasten :?::?::?:

Devil1925 27. Jul 2016 11:32

AW: [Firemonkey] Stringgrid AutoSize
 
DANKE DANKE DANKE, dass ihr mir mal die Augen geöffnet habt... manchmal ist man glaube ich einfach blind... das wars, vielen Dank!


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz