起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 194|回复: 8

【结帖】如何得到 datagrid 某行的行高??**

[复制链接]
发表于 2008-2-27 14:06:49 | 显示全部楼层 |阅读模式
如何得到 datagrid 某行的行高??
因为设置了自动行高,所以每行的行高都不同
要求不出现纵向滚动条
所以想编历行高,计算出 datagrid 的应该的高度,进行调整

ver 2819
回复

使用道具 举报

 楼主| 发表于 2008-2-27 15:07:25 | 显示全部楼层
找到了吗,急啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-27 16:37:33 | 显示全部楼层
还没找到方法吗?前辈!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-28 08:10:36 | 显示全部楼层
又过了一天,等待中。。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2008-2-28 10:16:17 | 显示全部楼层
抱歉,自动行高时无法获得每行高度。
回复 支持 反对

使用道具 举报

发表于 2008-2-28 10:37:51 | 显示全部楼层
您选中datagrid 的OptionsDB-edgoLoadAllRecords属性,看是否可以达到您的目的。
回复 支持 反对

使用道具 举报

发表于 2008-2-28 11:43:15 | 显示全部楼层
可以设置OptionsDB-edgoLoadAllRecords:=true
用以下代码获取各行高度:
  TExtDataGrid = class(TDataGrid)
  public
    function GetRowHeightByNode(ANode: TTreeListNode): Integer;
  end;

function TExtDataGrid.GetRowHeightByNode(ANode: TTreeListNode): Integer;
begin
  result := GetRowHeight(ANode, 0, false);
end;

procedure TMainForm.Button4Click(Sender: TObject);
var
  lheight: String;
  lNode: TTreeListNode;
  lexpdbg: TExtDataGrid;
  i: integer;
begin
  memo1.Lines.Clear;
  lexpdbg := TExtDataGrid(DataGrid1);

  for i:= 0 to DataGrid1.DataSource.DataSet.RecordCount-1 do
    begin
      lNode := DataGrid1.Items;
      lheight := SysUtils.IntToStr(lexpdbg.GetRowHeightByNode(lNode));
      memo1.lines.add(lNode.Strings[0] + ' : ' + lheight);
    end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-28 11:48:47 | 显示全部楼层
谢谢,等我试验以下再回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-29 10:09:55 | 显示全部楼层
先结吧,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 13:58 , Processed in 0.040543 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表