Einzelnen Beitrag anzeigen

BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#3

AW: Stringgrid, Zeile automatisch an Textgrösse anpassen

  Alt 8. Dez 2014, 16:32
Hallo zusammen,

für die Breite habe ich das so gemacht:

Delphi-Quellcode:
procedure HGGridColWidth(AGrid: TStringGrid; AMinWidth: Integer);
var
  liZ1: Integer;
  liZ2: Integer;
  liWidth: Integer;
  liTextWidth: Integer;
  liMaxWidth: Integer;
const
  ciWidthAdd = 5;
begin
  if (AMinWidth < 0) then
   begin
    AMinWidth := AGrid.DefaultColWidth;
   end;

  for liZ1 := 0 to (AGrid.ColCount -1) do
   begin // alle Spalten
    liMaxWidth := 0;
    for liZ2 := 0 to (AGrid.RowCount - 1 ) do
     begin // alle Zeilen
      liTextWidth := AGrid.Canvas.TextWidth(AGrid.Cells[liZ1, liZ2]);
      if (liTextWidth > liMaxWidth) then
       begin
        liMaxWidth := liTextWidth;
       end;
     end;

    if ((liMaxWidth + AGrid.GridLineWidth + ciWidthAdd) > AMinWidth) then
     begin
      liWidth := liMaxWidth + AGrid.GridLineWidth + ciWidthAdd;
     end
    else
     begin
      liWidth := AMinWidth;
     end;
    AGrid.ColWidths[liZ1] := liWidth;
   end;
end;
Das kann man mit ein bischen Fantasie auch problemlos auf die Zellenhöhe übertragen.
  Mit Zitat antworten Zitat