dbgrideh数据导出的问题

qq_18994603 2017-09-03 02:29:26
有一个程序A delphi6项目编译的exe。 我写了一个dll注入程序 获取了项目a的dbgrideh句柄,句柄转dbgrideh对象obj 然而在获取obj.Datasource属性的时候 崩溃了 提示dll address地址错误。 我自己也写了一个项目B 用注入程序成功获取了B项目对应dbgrideh的数据。 项目A和项目B的区别就是 a不知道ehlib的版本 b和dll注入程序同一个版本的第三方控件。
...全文
166 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_18994603 2017-09-03
  • 打赏
  • 举报
回复
引用 1 楼 lyhoo163的回复:
不同的版本,数据结构不样,地址偏移不一样,造成Add错误。
那么亲问 我应该看哪些书籍或者工具去填补这方面的空缺?
lyhoo163 2017-09-03
  • 打赏
  • 举报
回复
不同的版本,数据结构不样,地址偏移不一样,造成Add错误。
在他人的DBGridEh导出到Excel的基础上进行改进,增加功能如下: 1、支持多个DBGridEH同时导出到Excel的不同Sheet页 2、进度条与数据进度保持一致 3、增加了进度百分比显示 //调用方法: procedure TForm1.Button1Click(Sender: TObject); var DbOut: TDBGridEhToExcel; i: integer; begin try DbOut := TDBGridEhToExcel.Create(Self); for i := 0 to 9 do //初始化数组 begin DbOut.DBGridEhRecAry[i].TempDBGridEh := nil; DbOut.DBGridEhRecAry[i].TitleName := ''; DbOut.DBGridEhRecAry[i].SheetTabName := ''; end; //有多少个DBGridEh数据导出,此处表示两个 DbOut.DBGridEhRecLength := 2; //统计结果一 DbOut.DBGridEhRecAry[0].TempDBGridEh := dbgSpotCheckCount; DbOut.DBGridEhRecAry[0].TitleName := '统计结果一'; DbOut.DBGridEhRecAry[0].SheetTabName := '统计结果一'; //统计结果二 DbOut.DBGridEhRecAry[1].TempDBGridEh := dbgValuationCount; DbOut.DBGridEhRecAry[1].TitleName := '统计结果二'; DbOut.DBGridEhRecAry[1].SheetTabName := '统计结果二'; DbOut.TitleName := '统计结果'; DbOut.ShowProgress := True; DbOut.ShowOpenExcel := True; DbOut.ExportToExcel; finally FreeAndNil(DbOut); end; end; 还可以改进的地方,比如: 1、标题栏占用几行,字体,字体颜色,字体大小,背景颜色可以封装提供设置方法; 2、字段标题字体,字体颜色,字体大小; 3、表格样式设置; 就是动态数据不会封装到类里面,如果有高人封装得更好一些,请发一份我;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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