DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 20
在线用户: 13
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2017/1/21 9:35:20
标题:
有没有人试过使用 Ehlib9.0.034 出错的问题; 浏览:1344
加入我的收藏
楼主: 对一个 DBGRIDEH 动态调整时就会出现 AV错误

如:DBGridEh1.Columns[i].OptimizeWidth;
或:ClientDataSet1.Fields[i].DisplayLabel := 'AB';

跟踪代码到:DBGridEh.pas 的第 24787 行。即:

procedure TCustomDBGridEh.UpdateRowPosFromDatasetPos;
begin
  if FInternalUpdatingDatasetPos then Exit;
  if FLockRowPosFromDatasetPos > 0 then Exit;
  FInternalUpdatingDatasetPos := True;
  try
    DataGroupsGotoRecordViewNo(FIntMemTable.InstantReadCurRowNum, False);
  finally
    FInternalUpdatingDatasetPos := False;
  end;
end;

到 DataGroupsGotoRecordViewNo(FIntMemTable.InstantReadCurRowNum, False); 就直接 AV了。

问题应该出现在 FIntMemTable.InstantReadCurRowNum 上。

急,我没有时间再继续找原因,有人解决了这个问题吗?
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2017/1/21 9:44:13
1楼: procedure TCustomDBGridEh.UpdateRowPosFromDatasetPos;
begin
  if FInternalUpdatingDatasetPos then Exit;
  if FLockRowPosFromDatasetPos > 0 then Exit;
  FInternalUpdatingDatasetPos := True;
  try
    if Assigned(FIntMemTable) then  //临时的增加这一句先解决目前这个问题先
      DataGroupsGotoRecordViewNo(FIntMemTable.InstantReadCurRowNum, False);
  finally
    FInternalUpdatingDatasetPos := False;
  end;
end;
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.5毫秒 RSS