2012-01-05 114 views
1

我試圖編譯XE2中的某些組件時出現以下問題。這些組件沒有爲XE2準備,但我仍然試圖編譯它們。Delphi XE2 TPointerList用法

在一個組件中使用它是例如像

SomeVariable := Integer(FList.List^[i]); 

它產生編譯錯誤「所需指針型」時,它被聲明等

FList : TList; 

我可以糾正它像這樣

SomeVariable := Integer(FList.List[i]); 

但上帝知道多少時間,我需要修復故障的所有occurencies。

是否有一些編譯器指令或設置可以處理這個問題。我嘗試過{$ X}和{$ T},但效果不佳。

在XE2德爾福TPointerList(TList.List屬性)聲明爲動態數組

type TPointerList = array of Pointer; 

如果有人可以幫助?

+0

不,您必須更改第三方代碼。或者從代碼供應商處獲得更新。 – 2012-01-05 12:41:55

+0

此外,您的「更正」不正確。你的意思是:整數(FList.List [i])' – 2012-01-05 12:45:02

+0

我認爲你絕對不應該把一個「Array of X」稱爲「List」,特別是在一個類型聲明中。這種混亂只會讓人們煩惱。例如,TL​​ist類型具有Add(x)方法,而數組根本不是對象類型,而是必須SetLength。因此,「TSomethingList」不是「指針數組」的別名的好名字。 – 2012-01-05 17:39:00

回答

1

a)整數(FList [i])也可以工作。

b)沒有這樣的設置。

c)也許你可以搜索&替換.List^[ - > [?

+1

我將使用搜索和替換。我剛剛發現在XE2中更改了TList.List,它是XE2之前的PPointerList ... – Sofija 2012-01-05 12:52:35