У меня и другой пример есть, чуть менее очевидный (и менее реальный тоже, это да, но не сильно; если работает — увеличить N):
- Код: Выделить всё
{$mode objfpc} {$h+}
uses
heaptrc, SysUtils;
var
list: array of string;
function ListIndex(index: integer): integer;
const
N = 4;
var
i: integer;
begin
SetLength(list, length(list) + N);
for i := 1 to N do
list[High(list) - N + i] := '(ListIndex ' + IntToStr(i) + '/' + IntToStr(N) + ')';
result := index;
end;
var
i: integer;
begin
SetLength(list, 1);
list[ListIndex(0)] := '(test)';
for i := 0 to High(list) do
write(list[i], ' '); // ожидается: (test) (ListIndex 1/N) (ListIndex 2/N) ... (ListIndex N/N)
writeln;
end.