Dbgrideh getfootervalue 取值问题

贵生 2013-04-27 12:16:03
使用dbgrideh.getfootervalue(dbgrideh.columns[1])能取到值,但是,如果我把这个columns[1]拖动到一个新的位置,就会取到一个空值,怎么解决?
...全文
274 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
贵生 2013-05-03
  • 打赏
  • 举报
回复
谢谢码农!已使用以下函数解决 function Tfqpmain.GetDbGridColumnIndex(pDbGrid: TDBGridEh; pcFieldName: string): integer; var nFldLoop: integer; cFldName: string; begin Result := -1; for nFldLoop := 0 to pDbGrid.Columns.Count - 1 do begin cFldName := pDbGrid.Columns[nFldLoop].FieldName; if uppercase(pcFieldName) = uppercase(cFldName) then begin Result := nFldLoop; exit; end; end; end;
贵生 2013-04-27
  • 打赏
  • 举报
回复
拖动列后columns列号就变了,取值就取到错误的值了,大家难道不用getfootervalue来取列合计的值吗
贵生 2013-04-27
  • 打赏
  • 举报
回复
引用 1 楼 sololie 的回复:
拖动了,columns下标不变吗? 另外getfootervalue不是要两个参数吗,也没有重载版本, dbgrideh.getfootervalue(dbgrideh.columns[1])是什么情况? function TCustomDBGridEh.GetFooterValue(Row: Integer; Column: TColumnEh): String;
谢谢sololie的回复,这个是我笔误,实际写法是dbgrideh.getfootervalue(0,dbgrideh.columns[1])。您所说的columns下标是什么意思?
sololie 2013-04-27
  • 打赏
  • 举报
回复
columns下标就是你说的列号吗,你拖动了列号变了,你取值就对于变化后的列号嘛 变化后的列号在ColumnMoved事件里取

procedure TForm1.dbgrdh1ColumnMoved(Sender: TObject; FromIndex, ToIndex: Integer);
begin
   // FromIndex 起始列,ToIndex 目标列 
    ShowMessage(dbgrdh1.getfootervalue(0, dbgrdh1.Columns[ToIndex]));
end;
sololie 2013-04-27
  • 打赏
  • 举报
回复
拖动了,columns下标不变吗? 另外getfootervalue不是要两个参数吗,也没有重载版本, dbgrideh.getfootervalue(dbgrideh.columns[1])是什么情况? function TCustomDBGridEh.GetFooterValue(Row: Integer; Column: TColumnEh): String;

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧