delphi - 如何使 StringGrid 的列适合网格的宽度?

标签 delphi grid width stretch

我一直在寻找解决方案,但没有任何运气。有谁知道一个简单的方法来做到这一点?例如,我想拉伸(stretch)网格的第二列以适应网格的宽度!

最佳答案

使用 ColWidths 属性,如下所示:

with StringGrid1 do
  ColWidths[1] := ClientWidth - ColWidths[0] - 2 * GridLineWidth;

为了获得更强大、更灵活的解决方案,请考虑所有固定列并参数化列索引:

procedure SetColumnFullWidth(Grid: TStringGrid; ACol: Integer);
var
  I: Integer;
  FixedWidth: Integer;
begin
  with Grid do
    if ACol >= FixedCols then
    begin
      FixedWidth := 0;
      for I := 0 to FixedCols - 1 do
        Inc(FixedWidth, ColWidths[I] + GridLineWidth);
      ColWidths[ACol] := ClientWidth - FixedWidth - GridLineWidth;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetColumnFullWidth(StringGrid1, 4);
end;

关于delphi - 如何使 StringGrid 的列适合网格的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884248/

相关文章:

grid - Yii2 GridView 安装。无法定位类别 'kvgrid' 的消息源

css - 如何创建网格/平铺 View ?

R确定图像宽度和高度(以像素为单位)

delphi - delphi中调整父控件大小时如何调整子控件的大小?

image - 将图像大小调整为选择矩形 Delphi

javascript - 显示 flex 动态高度镶嵌网格

jquery - 通过浏览器调整大小来调整 div 宽度

javascript - HTML5 和 JS : Getting Image Width

德尔福 XE2 future

delphi - MMX 比 Delphi 自己的建模好吗?