user1651105
user1651105

Reputation: 1807

Array with multiple types?

I was wondering if there is a way to make an array which would have multiple types of data fields.

So far I was using aMyArray: array of array [0..1] of TPoint;

But now, it is not enough for me. I need to add 3 more elements to the existing 2 "Point" elements making it an array like aMyArray: array of (TPoint,TPoint,real,real,real)

So each element of aMyArray would have 5 'children', 2 of which are of a TPoint type and 3 of them are 'real' type.

Is this possible to implement somehow?

Upvotes: 3

Views: 2084

Answers (4)

Joe Meyer
Joe Meyer

Reputation: 448

You may also want to use variant records. For an example see this

Upvotes: 0

Chris Thornton
Chris Thornton

Reputation: 15817

I would use a TStringList or decendant, with AddObject.

Upvotes: 0

user160694
user160694

Reputation:

You can use an array of Variants to store different data in each element. But array were designed to store homogenous data. If your data storage requirements are more complex, start to look for different containers.

Upvotes: 0

Uli Gerhardt
Uli Gerhardt

Reputation: 13991

Maybe a record like

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

or

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

works for you.

Upvotes: 13

Related Questions