![](/img/trans.png)
[英]Delphi REST.client E2003 Undeclared identifier: 'rmPost'
[英]delphi E2003 undeclared identifier 'self'
我需要一些幫助; 我正在幫助朋友移植幾年前建立在新版本Windows上的Delphi應用程序,因為它目前只在Windows 95上運行。
該代碼使用Woll2Woll的第三方庫進行數據庫操作。
其中一個庫生成錯誤E2003 Undeclared標識符:'self'。
我通過Google瀏覽了很多網站,並且我對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;
我必須將Self參數更改為什么才能停止編譯錯誤?
謝謝你的籌碼。
問題與編譯器定義wwDelphi3Up或代碼中的任何相關內容有關。
正如您看到的下一條錯誤消息:[DCC Error] wwQuery.pas(244):E2029'。' 預期,但';' 發現
編譯器期望程序結束,並且行wwSaveAnswerTable(self,Handle,'FAnswerTable'); 不在OpenCursor方法中編譯。 這就是Self沒有被定義的原因。
您無需更改參數,因為肯定會影響功能。
如果您不使用古老版本的Delphi,請嘗試編譯它而不使用定義:
procedure TwwQuery.OpenCursor(InfoQuery: Boolean);
begin
inherited OpenCursor(InfoQuery);
wwSaveAnswerTable(self, Handle, 'FAnswerTable'); // Here prob FAnswerTable without quotes
end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.