2010-05-09 4 views
3

여러 종류의 데이터 필드를 가진 배열을 만드는 방법이 있는지 궁금합니다.여러 유형의 배열?

지금까지 나는

aMyArray: array of array [0..1] of TPoint;을 사용하고 있었다 그러나 지금, 그것은 나를 위해 충분하지 않습니다. 기존의 2 개의 "Point"요소에 3 개의 요소를 더 추가하여

과 같이 배열해야합니다. 따라서 aMyArray의 각 요소에는 5 개의 'children'이 있으며 그 중 2 개는 TPoint 유형이고 그 중 3 개는 '진짜'유형.

어떻게 든 구현할 수 있습니까?

답변

12

어쩌면 당신을 위해

TMyType = record 
    Points: array[0..1] of TPoint; 
    Floats: array[0..2] of Real; 
end; 

또는

TMyType = record 
    Point0: TPoint; 
    Point1: TPoint; 
    Float0: Real; 
    Float1: Real; 
    Float2: Real; 
end; 

작품과 같은 기록.

+0

+1. 유형이 다른 유형의 요소가 고정 된 구조는 레코드의 용도와 정확히 일치합니다. –

+0

이것은 * 해결책입니다. –

+0

'TPoint'자체가 레코드라는 중요한 단서가 있습니다. – afrazier

0

변형의 배열을 사용하여 각 요소에 다른 데이터를 저장할 수 있습니다. 그러나 어레이는 동질적인 데이터를 저장하도록 설계되었습니다. 데이터 저장 요구 사항이 더 복잡한 경우 다른 컨테이너를 찾습니다.

+0

변형은 TPoint와 같은 기록을 보관할 수 없습니다. –

0

AddObject를 사용하여 TStringList 또는 decendant를 사용합니다.

+0

정말요? 그걸 보여줄 수 있겠 니? –

+0

많은 memmory를 사용할 필요가 없습니다 ... – Astronavigator

0

변형 레코드를 사용할 수도 있습니다. 예를 들어 see this

관련 문제