【发布时间】:2014-04-07 10:57:41
【问题描述】:
[dcc32 错误] MSSQLQuery.pas(29):“DataEvent”的 E2037 声明与之前的声明不同
我做了一些研究,发现这个问题是在函数覆盖过程中引起的,如果超类和子类中的声明不同
DataEvent 是一个库函数,我检查了库,发现代码中的声明是正确的,但我不确定为什么会出现这个编译错误
我也确认了这个类中只有一个DataEvent函数
我是 Delphi 新手所以请帮我解决这个错误
这是我定义的类
TMSSQLQuery = Class (TADOQuery)
Private
FAutoNoLock : Boolean;
Protected
procedure DataEvent(Event: TDataEvent; Info: Longint); override;
Public
Constructor Create (AOwner : TComponent);Override;
Destructor Destroy;Override;
End;
这是过程定义
Procedure TMSSQLQuery.DataEvent(Event: TDataEvent; Info: Longint);
Begin
{ Call inherited method }
Inherited DataEvent (Event, Info);
If Event in [deConnectChange, dePropertyChange]
Then RefreshParams;
End;
【问题讨论】:
-
1) 您确定 MSSQLQuery.pas 或相关文件未更改吗? 2)你确定没有其他MSSQLQuery 3)你试过关闭delphi IDE并重新启动吗? (它经常变得不稳定)。 4) 能否贴出DataEvent及其祖先的声明代码。
-
请edit 包含导致编译器错误的实际代码行(第 29 行)。
-
我已经在问题中添加了代码
-
我已经解释了为什么会这样。请参阅我编辑的答案。
标签: delphi delphi-xe4