Delphi RAD Studio 课程完成问题
Posted
技术标签:
【中文标题】Delphi RAD Studio 课程完成问题【英文标题】:Delphi RAD Studio class completion issue 【发布时间】:2017-01-13 19:20:45 【问题描述】:如果我有以下类结构,我无法使用 Embarcadero RAD Studio XE6 调用类完成(通过 Ctrl + Shift + C)。程序运行正常,但 IDE 导致以下错误。想用的话,一定要评论DescriptionArray
,有点烦。
因此我想知道,如果有人知道,问题出在哪里,或者我做错了什么。
GT_Class = class
type
TCustomEnum = (ceValue1, ceValue2, ceValue3, ceValue4);
TCustomSet = set of TCustomEnum;
const
DescriptionArray : array[TCustomEnum] of string = ('Description1', 'Description2', 'Description3', 'Description4');
end;
错误信息
【问题讨论】:
我想是因为你的课本来就没有什么可以完成的。 我可以在 XE6 中重现该错误,但在柏林无法重现。尽管在调用类完成时消除了错误,但在 const 前面放置可见性。 当你为这个类调用类完成时你期望发生什么? 这个代码 sn-p 在西雅图对我来说很好用。看起来 IDE 中的一个错误已经解决了。 @StefanGlienke:找到它:“如果成员的声明出现时没有自己的可见性说明符,则该成员具有与其前面的相同的可见性。类声明开头的成员不如果类在 $M+ 状态下编译或派生自在 $M+ 状态下编译的类,则默认发布具有指定可见性;否则,此类成员是公共的。所以确实,如果从 TObject 继承,它是公共的。如果继承自 TPersistent(使用 $M+ 编译),则会发布。 【参考方案1】:由Stefan Glienke 在comment 中解决。实际上这是 Delphi XE6 中的一个错误,在其他版本中它已得到解决。您需要定义可见性,在这种情况下为 public
,即使它不应该是必需的。
GT_Class = class
public
type
TCustomEnum = (ceValue1, ceValue2, ceValue3, ceValue4);
TCustomSet = set of TCustomEnum;
const
DescriptionArray : array[TCustomEnum] of string = ('Description1', 'Description2', 'Description3', 'Description4');
end;
【讨论】:
以上是关于Delphi RAD Studio 课程完成问题的主要内容,如果未能解决你的问题,请参考以下文章