Можно также воспользоваться динамическими массивами, как в этом примере:
var
CachedLabels: TArray<string>;
function ReadLabels: TArray<string>;
begin
if Length(CachedLabels) = 0 then
CachedLabels := TArray<string>.Create('Alpha', 'Beta', 'Gamma');
Result := CachedLabels;
end;
Хотя здесь динамический массив в куче инициализируется во время выполнения, пример показывает «псевдоконструктор» динамических массивов Delphi, позволяющий инициализировать их прямо в месте использования. (ПРИМЕЧАНИЕ: этот пример не является потокобезопасным).
Чтобы получить длину массива, достаточно вызвать стандартную функцию Length(), а для определения допустимого диапазона индексов воспользоваться стандартными функциями Low() и High().
В старых версиях Delphi замените TArray собственным типом динамического массива строк, например:
type
TLabelArray = array of string;
Переведено с английского·Показать оригиналYou can also use dynamic arrays, as in this example:
var
CachedLabels: TArray<string>;
function ReadLabels: TArray<string>;
begin
if Length(CachedLabels) = 0 then
CachedLabels := TArray<string>.Create('Alpha', 'Beta', 'Gamma');
Result := CachedLabels;
end;
Although it initializes a heap-allocated dynamic array at run-time, this demonstrates Delphi's dynamic-array "pseudo-constructor", which permits initialization right where it is used. (NOTE: this example is not thread-safe).
To obtain the array's length, simply call the standard Length() function, or call the standard Low() and High() functions to determine the valid range of indices.
For older Delphi versions, substitute your own dynamic string-array type for TArray, for example:
type
TLabelArray = array of string;