2013-10-09 4 views
1

Я получаю ошибку Incompatible types: 'PPointerList' and 'TPointerList' в следующей функции.Несовместимые типы: «PPointerList» и «TPointerList» в Delphi XE4

function MyFunction: PPointerList; 
begin 
    result := FList.List; 
end; 

FList.List возврат TPointerList type. Этот код отлично работает в коде Delphi 7, но бросает ошибку в Delphi XE4.

PPointerList и TPointerList объявлены в System.Classes

В System.Classes

PPointerList = ^TPointerList; 
TPointerList = array of Pointer; 

Когда я typecasted TPointerList к PPointerList, он работал как

function MyFunction: PPointerList; 
begin 
    result := PPointerList(FList.List); 
end; 

Является ли это правильное решение , или что мне делать, чтобы избавиться от этой ошибки.

ответ

7

TList изменился. Внутреннее поле FList было PPointerList, но теперь это TPointerList. Чтобы вернуть указатель на это, вы можете:

function MyFunction: PPointerList; 
begin 
    Result := @FList.List; 
end; 
+1

TOndrej и TLama - Спасибо за помощь. Это решило мою проблему. –

Смежные вопросы