列表索引在继承形式中超出范围

发布于 2025-01-07 09:23:38 字数 2089 浏览 2 评论 0原文

我想将旧的 Delphi 6 项目迁移到 Delphi XE2 和 ReportBuilder 14。

在我的项目中,我有一个从 TppReport 继承的用户组件 TReportBase,我需要 4 或 5 个新属性。我有基本表单 TBaseForm 与 TReportBase 组件和一些其他控件。许多其他表单继承自此 TBaseForm。

这种行为在 Delphi 6 中对我有效,并且我在 Delphi 7 和 Delphi 2007 中也进行了测试,并获得了良好的结果。但在 Delphi XE2 中,

我在预览和设计中发现了问题。

当我添加 Tpplabel 时,我收到列表索引越界错误,并且:

[500A3234]{rtl160.bpl  } System.Classes.TList.Insert (Line 3932, "System.Classes.pas" + 5) + $1
[11CF1E98]{rbRCL1416.bpl} Ppclass.TppBand.AddObject + $84
[11CF5700]{rbRCL1416.bpl} Ppclass.TppComponent.SetBand + $54
[11BDCC80]{rbRCL1416.bpl} Ppctrls.TppCustomText.SetBand + $0
[11ED079A]{rbIDE1416.bpl} Ppdesignworkspacecontroller.TppDesignWorkspaceController.AddComponent + $E6
[11ED17CA]{rbIDE1416.bpl} Ppdesignworkspacecontroller.TppDesignWorkspaceController.ehWorkspace_MouseUp + $BA
[11AD6627]{rbRTL1416.bpl} Ppmulticast.TppMulticastEvent.Notify + $27
[11EBEF56]{rbIDE1416.bpl} Ppdesignerworkspace.TppWorkspace.MouseUp + $4A
[503331A8]{vcl160.bpl  } Vcl.Controls.TControl.DoMouseUp (Line 7448, "Vcl.Controls.pas" + 2) + $28
[50333224]{vcl160.bpl  } Vcl.Controls.TControl.WMLButtonUp (Line 7461, "Vcl.Controls.pas" + 9) + $6
[50332814]{vcl160.bpl  } Vcl.Controls.TControl.WndProc (Line 7204, "Vcl.Controls.pas" + 91) + $6
[11FC6660]{rbIDE1416.bpl} Ppsynuedit.TSynEditPlugin + $70
[503369AB]{vcl160.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9745, "Vcl.Controls.pas" + 1) + $9
[50337163]{vcl160.bpl  } Vcl.Controls.TWinControl.WndProc (Line 9976, "Vcl.Controls.pas" + 152) + $6
[503367B8]{vcl160.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9689, "Vcl.Controls.pas" + 3) + $6
[500B5FCC]{rtl160.bpl  } System.Classes.MakeObjectInstance (Line 13921, "System.Classes.pas" + 0) + $0
[504524EF]{vcl160.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10164, "Vcl.Forms.pas" + 23) + $1
[50452532]{vcl160.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[50452865]{vcl160.bpl  } Vcl.Forms.TApplication.Run (Line 10331, "Vcl.Forms.pas" + 26) + $3

提前致谢。

勒米尔

I want migrate a old Delphi 6 project to Delphi XE2 and ReportBuilder 14.

In my project I have a user component TReportBase inherited from TppReport, there are 4 or 5 new properties I need. I have base form TBaseForm with a TReportBase component and some other controls. Many other forms inherit from this TBaseForm.

This behaviour worked for me in Delphi 6, and, I tested too with good results in Delphi 7 and Delphi 2007. But in Delphi XE2

I found problems in Preview and in the Design.

When I add a Tpplabel I receive a List Index out of bounds error and this:

[500A3234]{rtl160.bpl  } System.Classes.TList.Insert (Line 3932, "System.Classes.pas" + 5) + $1
[11CF1E98]{rbRCL1416.bpl} Ppclass.TppBand.AddObject + $84
[11CF5700]{rbRCL1416.bpl} Ppclass.TppComponent.SetBand + $54
[11BDCC80]{rbRCL1416.bpl} Ppctrls.TppCustomText.SetBand + $0
[11ED079A]{rbIDE1416.bpl} Ppdesignworkspacecontroller.TppDesignWorkspaceController.AddComponent + $E6
[11ED17CA]{rbIDE1416.bpl} Ppdesignworkspacecontroller.TppDesignWorkspaceController.ehWorkspace_MouseUp + $BA
[11AD6627]{rbRTL1416.bpl} Ppmulticast.TppMulticastEvent.Notify + $27
[11EBEF56]{rbIDE1416.bpl} Ppdesignerworkspace.TppWorkspace.MouseUp + $4A
[503331A8]{vcl160.bpl  } Vcl.Controls.TControl.DoMouseUp (Line 7448, "Vcl.Controls.pas" + 2) + $28
[50333224]{vcl160.bpl  } Vcl.Controls.TControl.WMLButtonUp (Line 7461, "Vcl.Controls.pas" + 9) + $6
[50332814]{vcl160.bpl  } Vcl.Controls.TControl.WndProc (Line 7204, "Vcl.Controls.pas" + 91) + $6
[11FC6660]{rbIDE1416.bpl} Ppsynuedit.TSynEditPlugin + $70
[503369AB]{vcl160.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9745, "Vcl.Controls.pas" + 1) + $9
[50337163]{vcl160.bpl  } Vcl.Controls.TWinControl.WndProc (Line 9976, "Vcl.Controls.pas" + 152) + $6
[503367B8]{vcl160.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9689, "Vcl.Controls.pas" + 3) + $6
[500B5FCC]{rtl160.bpl  } System.Classes.MakeObjectInstance (Line 13921, "System.Classes.pas" + 0) + $0
[504524EF]{vcl160.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10164, "Vcl.Forms.pas" + 23) + $1
[50452532]{vcl160.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[50452865]{vcl160.bpl  } Vcl.Forms.TApplication.Run (Line 10331, "Vcl.Forms.pas" + 26) + $3

Thanks in advance.

lmir

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文