我需要一點幫助;我正在幫助一位朋友移植一個Delphi應用程序,這個應用程序可以在Windows的新版本中使用,因爲它目前只能在Windows 95上運行。delphi E2003未聲明標識符'self'
該代碼利用來自Woll2Woll的第三方庫進行數據庫操作。
其中一個庫生成錯誤E2003 Undeclared標識符:'self'。我已經通過谷歌和我有限的Delphi知識(來自我12年前的Pascal培訓,並推斷我輕微生鏽的PHP,BASH,ColdFusion和ASP編碼技能),經歷了許多網站,我遇到了一堵磚牆 - 我時間緊張,無法理解我在網上遇到的信息。
有問題的代碼段是從wwwQuery.pas文件和看起來像這樣:
{$ifdef wwDelphi3Up}
procedure TwwQuery.OpenCursor(InfoQuery: Boolean);
{$else}
procedure TwwQuery.OpenCursor;
{$endif}
begin
{$ifdef wwDelphi3Up}
inherited OpenCursor(InfoQuery);
{$else}
inherited OpenCursor;
{$endif}
//Modded by Arie
//wwSaveAnswerTable(self, Handle, FAnswerTable);
wwSaveAnswerTable(self, Handle, 'FAnswerTable');
end;
精確錯誤信息是:
[DCC Error] wwQuery.pas(243): E2003 Undeclared identifier: 'self'
[DCC Error] wwQuery.pas(244): E2029 '.' expected but ';' found
[DCC Fatal Error] wwcommon.pas(285): F2063 Could not compile used unit 'wwQuery.pas'
243行是第二最後一行的正上方結束;
的wwSaveAnswerTable功能如下:
Function wwSaveAnswerTable(ADataSet: TDBDataSet; AHandle: HDbiCur; tableName: string): boolean;
我必須改變自身的參數,停止編譯錯誤?
謝謝了。
這不是你真正的代碼。如果您需要幫助,請勿發佈虛假代碼。 –
我同意戴維。在任何情況下,'begin'都會打開一個新塊,因此編譯器絕不會期望'end'是文件中的最後一個 - 因爲這需要所有塊已經被關閉。 – Chris