列表索引在继承形式中超出范围
我想将旧的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论