Увеличение ячейки TStringGrid при увеличении числа строк

Материал из DRKB

Увеличение ячейки TStringGrid при увеличении числа строк[править | править код]

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow:
  Integer; Rect: TRect; State: TGridDrawState);
var
  Format: Word;
  C: array[0..255] of Char;
  r: integer;
begin
  C := '';
  Format := DT_LEFT or DT_WORDBREAK;
  (Sender as TStringGrid).Canvas.FillRect(Rect);
  StrPCopy(C, (Sender as TStringGrid).Cells[ACol, ARow]);
  if c <> '' then // если есть значения
  begin
    r := WinProcs.DrawText((Sender as TStringGrid).Canvas.Handle, C,
      StrLen(C), Rect, Format);
    if r > (Sender as TStringGrid).RowHeights[Arow] then
      // если высота колонки меньше
      (Sender as TStringGrid).RowHeights[Arow] := r;
  end;
end;


Source: http://delphiworld.narod.ru/
ID: 01073