首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Quickreport属性PreviewLeft不存在

Quickreport属性PreviewLeft不存在
EN

Stack Overflow用户
提问于 2011-09-06 09:29:27
回答 2查看 2.7K关注 0票数 1

我有一个程序,它使用quickreports 5生成一些报告。这个程序总是在一个特定的PC上编译的。现在我想在其他机器上开发程序,我对快速报告有一个很大的问题。

虽然我在新机器上安装了相同版本的quickreports (5.0.2),但我无法让程序在它们上工作。一旦我打开带有新机器的快速报告的表单,我就会得到以下错误:

读取FrmMyReport.PreviewLeft错误:属性PreviewLeft不存在。..。

我可以编译程序,但是一旦我使用了一个带有快速报告的表单,我就会得到这个异常:

Project MyProject.exe引发带有消息“Property PreviewLeft不存在”的异常类EReadError。

当我在这里休息时,它会停在TCustomQuickRep.Create。调试后,它似乎发生在TCustomQuickRep.SetBandValues中的Lineif assigned(FPage) and assigned(FBandList) and中。

我还尝试手动安装软件包,通过编译安装,将所有可能的目录添加到库路径中。毫无办法。我看不出旧机器和新机器之间有什么区别。

我希望有人能帮我解决这个问题。能够在新机器上开发这个应用程序是非常重要的。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-06 10:45:21

您确定旧机器和新机器安装了相同版本的QuickReport吗?因为错误消息通常发生在使用更新版本创建的DFM中的组件描述时,即

  • 组件的x版引入了新的属性PreviewLeft
  • 使用x版进行开发时,该属性将保存到DFM中;
  • 使用没有属性的组件x-1编译/打开项目,流系统会引发异常,因为它在组件的旧版本中找不到属性。

新版本也有可能删除(过时的)属性,但在这种情况下,组件供应商通常会在流期间小心地忽略该属性,因此不会引发异常。因此,我怀疑您实际上在新机器上安装了一个旧版本的QuickReport。我自己不使用QuickReport,所以我不知道什么时候引入了PreviewLeft属性,以及它需要什么.如果它是预览窗口的左坐标,那么忽略它并从DFM中清除它是无害的--困难的方法是在IDE中一个一个地打开报告,然后在错误的dlg中按“忽略”,简单的方法是使用一些工具(我相信绝地武士可能有这样的工具)。

UPDATE绝地武士工具名为DFMcleaner,它位于德尔菲5安装中的jvcl\devtools\DFMCleaner目录中。

票数 1
EN

Stack Overflow用户

发布于 2011-09-06 13:51:09

我遇到过这样的情况:我入侵/扩展了一个第三方库,以添加/更正一些功能。然后,我移动到一个新的PC (或下载更新从供应商),并失去我的新属性。经常是几个月或几年这样的混乱,所以我通常会浪费半天的时间去追踪它,然后又是“D‘噢!似曾相识”。我有一个组件,实际上我添加了一个名为

代码语言:javascript
复制
property ThisLibraryWontCompileUntilItsBeenHackedByChris : boolean;

当编译器停止时,我知道该在哪里查找。

克里斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7317720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档