4
我正在將一些傳統的第三方組件從Delphi 6源升級到XE2。Delphi XE2 - 嵌套類函數不編譯
第三方源在類過程中嵌套了類函數。嘲笑準確的工作副本將失敗:
type
TMyClass1 = class
public
class procedure DoSomething;
end;
{ TMyClass1 }
class procedure TMyClass1.DoSomething;
class function DoSomethingelse: boolean;
begin
result := false;
end;
begin
end;
試圖編譯這給出了關於doSomethingelse是一個未聲明的標識符的錯誤。現在我可以(大概)通過將嵌套函數拉出到同一級別來解決這個問題,但是有沒有可以設置的編譯器選項來防止這種情況發生?這是最近發生了什麼變化嗎?有其他人遇到過這個問題嗎?
感謝
也許嵌套函數旁邊不應該有「class」字。如果你螞蟻把它拉起來 - 用「class」關鍵字拉動它,並添加到私人部分。 – Kromster
當我轉移到XE2時,我的代碼庫中的一些第三方代碼遇到了這個問題。最好的解決方案是刪除內部的類。我敢打賭,這個改變是在XE2上面的代碼適用於所有早期版本。 –
@DavidHeffernan此代碼在Delphi XE中也失敗了,所以在Delphi 2007和XE之間的某個版本中進行了更改。 – RRUZ