我从 http://embtvstools.svn.sourceforge.net/下载了embtvstools(Embarcadero TVirtualShellTools) 但是,当我创建一个新包时,删除.pas文件(以及VirtualTreeView中缺少的compilers.inc)并编译批次,我收到错误E2026,为什么
但是,当我创建一个新包时,删除.pas文件(以及VirtualTreeView中缺少的compilers.inc)并编译批次,我收到错误E2026,为什么会这样,我该如何避免/解决这个问题?
resourcestring sAssociationChanged = 'Association Changed'; sItemCreate = 'Item Create'; sItemDelete = 'Item Delete'; .... const // Literal translations of TShellNotifyEvent type. Useful when using the // OnShellNotify event to print out what event occurred. VirtualShellUtilities.pas // has a helper function ShellNotifyEventToStr that uses these. VET_NOTIFY_EVENTS: array[0..19] of WideString = ( sAssociationChanged, sAttributes, sItemCreate, .....
[Pascal Error] IDEVirtualResources.pas(155): E2026 Constant expression expected
[Pascal Error] IDEVirtualResources.pas(156): E2026 Constant expression expected
[Pascal Error] IDEVirtualResources.pas(157): E2026 Constant expression expected
更新
将widestring更改为字符串会阻止编译器抱怨,(我怀疑它会在其他地方创建一些问题,因为widestring<> string)我想保持类型widestring的常量.
如何进行取决于您尝试做什么.如果您打算将这些字符串翻译成不同的语言,那么您可能处于绑定状态.如果您打算这样做,那么使用Unicode版本的Delphi显然会好得多.
所以,既然你坚持使用Unicode之前的Delphi,我猜你实际上并不需要翻译字符串.在这种情况下,只需将const数组的声明从WideString更改为string.碰巧,此数组由此代码声明,但从未引用过.