QuickReport属性PreviewLeft不存在

时间:2011-09-06 09:29:27

标签: delphi quickreports

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

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

  

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

我可以编译程序,但只要我使用带有快速报告的表单,我就会遇到这个例外:

  

Project MyProject.exe引发异常类EReadError,消息'Property PreviewLeft不存在'。

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

我还尝试手动安装软件包,使用compile-install,将所有可能的目录添加到库路径中。什么都行不通。我看不出旧机器和新机器之间的区别。新机器。

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

2 个答案:

答案 0 :(得分:1)

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

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

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

<强>更新 Jedi工具名为DFMcleaner,它位于我的Delphi 5安装中的jvcl\devtools\DFMCleaner目录中。

答案 1 :(得分:0)

我遇到过我已经攻击/扩展第三方库以添加/更正某些功能的情况。然后我转移到一台新PC(或从供应商处下载更新)并丢失我的新属性。这样的犯规经常是几个月或几年,所以我通常会失去半天跟踪它,然后它就是“D'OH!Deja-vu再一次”。我有一个组件,我实际上添加了一个名为

的属性
property ThisLibraryWontCompileUntilItsBeenHackedByChris : boolean;

当编译器停止时,我知道在哪里看。

克里斯

相关问题