微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我一直在寻找一个没有运气的解决方案.有谁知道一个简单的方法吗?我想伸展我的网格的第二列以适应网格的宽度!

解决方法

使用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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐