type casting to a dynamic array

2k views Asked by At

Given the following:

Type
  TSomeTypeArray = array of SomeType;

var
  anArray: array of SomeType;

function GetSomeTypeArray: TSomeTypeArray; 

I want to write anArray = GetSomeTypeArray(); but the compiler does not like it. Without changing the type of anArray or the return type of GetSomeTypeArrayhow can I typecast TSomeTypeArray to array of SomeType?

2

There are 2 answers

1
Jim McKeeth On BEST ANSWER

You can't. You need to declare anArray as of type TSomeTypeArray, then it should work.

Alternatively, you could store the result into another array of type TSomeTypeArray then call SetLength on anArray to the length of the returned array. And finally loop through the two arrays setting the elements of anArray to the elements of the returned array.

1
Dan Bartlett On

You could typecast the left hand side of the assignment:

TSomeTypeArray(anArray) := GetSomeTypeArray();