2010-05-09 75 views
3

我想知道是否有一種方法來創建一個數組,這將有多種類型的數據字段。具有多種類型的數組?

到目前爲止我用aMyArray: array of array [0..1] of TPoint;

但現在,這是不夠的我。我需要3個以上的元素添加到現有的2「點」使其成爲一個數組元素等aMyArray: array of (TPoint,TPoint,real,real,real)

所以aMyArray的每個元素將具有5「孩子」,其中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。具有不同類型元素的固定數量的結構正是記錄的目的。 – 2010-05-09 17:29:25

+0

這是*解決方案。 – 2010-05-09 18:23:18

+0

一個重要的線索是「TPoint」本身就是一個記錄。 – afrazier 2010-05-09 18:56:07

0

您可以使用一組變體來在每個元素中存儲不同的數據。但是陣列被設計爲存儲同質數據。如果您的數據存儲要求更爲複雜,請開始尋找不同的容器。

+0

變體不能保存像TPoint一樣的記錄。 – 2010-05-10 14:39:26

0

我會使用TStringList或decendant,與AddObject。

+0

真的嗎?你能證明一下嗎? – 2010-05-10 14:42:35

+0

使用大量內存不需要... – Astronavigator 2010-05-11 18:47:08

0

您可能還想使用變體記錄。舉例see this