警告"不推荐使用Symbol TMemoryManager"在编译器完成编译之后出现

时间:2015-11-19 19:19:50

标签: delphi delphi-xe7

我在"消息"中收到了几个警告。面板,在编译我的源代码之后,在编译器的[Success]消息之后。

当我将光标放在关键字/变量上并且Code Insight弹出窗口出现在屏幕上(编译后)时,有时会出现,有时则不然。外观是随机的(警告可能出现与否)。基本上,它取决于IDE中的光标位置。

[警告] W1000符号' TVariantManager'已弃用 [警告] W1000符号' TMemoryManager'已弃用:'使用TMemoryManagerEx'
[警告] W1000符号' TSingleRec'已弃用:'使用TSingleHelper'
[警告] W1000符号' TDoubleRec'已被弃用:'使用TDoubleHelper'

enter image description here

双击消息时没有任何反应。

知道是什么原因引起的吗?

由于这在编译器完成后出现,我想它会是我的插件之一(GExpers,CnPack,Andy' s),但直到现在我还没有看到它。

2 个答案:

答案 0 :(得分:1)

最后,我有一个解释。以下是我的IDE的构建窗口中的一些输出:

Checking project dependencies...
Compiling Foo.dproj (Debug, Win32)
dcc command line for "Foo.dpr"
..... // spurious details removed
Success
Elapsed time: 00:00:05.2
[Error] E1000 Symbol 'TImageIndex' is deprecated: 'Use System.UITypes.TImageIndex'
[Error] E1000 Symbol 'CM_THEMECHANGED' is deprecated: 'Use CM_STYLECHANGED'
[Error] E1000 Symbol 'RaiseList' is deprecated: 'Use AcquireExceptionObject'
[Error] E1000 Symbol 'TMemoryManager' is deprecated: 'Use TMemoryManagerEx'
[Error] E1000 Symbol 'Release' is deprecated
[Error] E1000 Symbol 'ThemeServices' is deprecated: 'Use StyleServices'
[Error] E1000 Symbol 'faVolumeID' is deprecated
[Error] E1000 Symbol 'GetHeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'THeapStatus' is deprecated
[Error] E1000 Symbol 'TScrollStyle' is deprecated: 'Use System.UITypes.TScrollStyle'

当我尝试使用 CTRL +单击导航到源代码中符号的定义时,出现了这组特定的错误。接下来会发生的是IDE使用其内部解析器/编译器之一来理解代码并确切地计算出这是什么符号。这个内部解析器/编译器是用Delphi编写的,它会发出提示,警告和错误,它们位于主IDE构建窗口中。

我知道您所看到的具体警告内容与我的内容不同,但我确信根本原因在原则上是相同的。其中一个内部解析器/编译器正在吐出这些消息,因此它们与代码内容完全无关。

答案 1 :(得分:0)

大卫回答的附录。引发这种奇怪行为的另一件事是Refactor。这是我在尝试应用'Pull members up'重构失败后得到的结果。

Checking project dependencies...
..... // spurious details removed
Success
Elapsed time: 00:00:01.9
[Warning] W1000 Symbol 'vmtEquals' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtGetHashCode' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtToString' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtSafeCallException' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtAfterConstruction' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtBeforeDestruction' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtDispatch' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtDefaultHandler' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtNewInstance' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtFreeInstance' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtDestroy' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtQueryInterface' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtAddRef' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtRelease' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'vmtCreateObject' is deprecated: 'Use VMTOFFSET in asm code'
[Warning] W1000 Symbol 'TVariantManager' is deprecated
[Warning] W1000 Symbol 'TVariantManager' is deprecated
[Warning] W1000 Symbol 'TMemoryManager' is deprecated: 'Use TMemoryManagerEx'
[Warning] W1000 Symbol 'TMemoryManager' is deprecated: 'Use TMemoryManagerEx'
[Warning] W1000 Symbol 'THeapStatus' is deprecated
[Warning] W1000 Symbol 'THeapStatus' is deprecated
[Warning] W1000 Symbol 'HPrevInst' is deprecated
[Warning] W1000 Symbol 'AllocMemCount' is deprecated
[Warning] W1000 Symbol 'AllocMemSize' is deprecated
[Warning] W1000 Symbol 'TSingleRec' is deprecated: 'Use TSingleHelper'
[Warning] W1000 Symbol 'TSingleRec' is deprecated: 'Use TSingleHelper'
[Warning] W1000 Symbol 'TDoubleRec' is deprecated: 'Use TDoubleHelper'
[Warning] W1000 Symbol 'TDoubleRec' is deprecated: 'Use TDoubleHelper'
[Warning] W1000 Symbol 'TextStart' is deprecated
[Warning] W1000 Symbol 'GetHeapStatus' is deprecated
[Warning] W1000 Symbol 'RaiseList' is deprecated: 'Use AcquireExceptionObject'
[Warning] W1000 Symbol 'SetRaiseList' is deprecated: 'Use AcquireExceptionObject'
[Warning] W1000 Symbol 'Mark' is deprecated
[Warning] W1000 Symbol 'Release' is deprecated
[Warning] W1000 Symbol 'FPower10' is deprecated: 'Use Power10'
[Warning] W1000 Symbol 'GetVariantManager' is deprecated
[Warning] W1000 Symbol 'SetVariantManager' is deprecated
[Warning] W1000 Symbol 'IsVariantManagerSet' is deprecated
[Warning] W1000 Symbol 'UTF8Decode' is deprecated: 'Use UTF8ToWideString or UTF8ToString'

我们可以再次看到对'TMemoryManagerEx'的引用。