2012-01-05 2 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

아니요, 제 3 자 코드를 변경해야합니다. 또는 코드 공급 업체로부터 업데이트를 받으십시오. –

+0

또한 "수정"이 잘못되었습니다. 당신은 다음을 의미합니다 :'Integer (Flist.List [i]) –

+0

"Array of X"를 "List"라고 부르면 안됩니다, 특히 타입 선언에서. 그러한 혼란은 사람들을 괴롭게 할뿐입니다. 예를 들어, TList 유형에는 Add (x) 메소드가 있지만, Array는 객체 유형이 아니며 대신 SetLength를 사용해야합니다. 따라서 "TSomethingList"는 "포인터 배열"의 별칭에 적합한 이름이 아닙니다. –

답변

1

a) 정수 (FList [i])도 작동합니다.

b) 그런 설정이 없습니다.

c) 아마도 검색 할 수 있습니다. & .List^[-> [?

+1

그런 식으로 검색 및 바꾸기를 사용하겠습니다. 방금 TList.List가 XE2에서 변경되었음을 알았습니다. XE2 이전에는 PPointerList였습니다 ... – Sofija