Witam,
Chciałem napisać procedurę, która przy wykorzystaniu pętli FOR, wyświetliłaby mi z góry do dołu wszystkie elementy tablicy , jednak nie jestem wstanie skrócić tablicy po każdej iteracji.
Tak wygląda procedura:
procedure TForm1.ArrToStr(arr: array of double);
var
I: integer;
res: string;
begin
res:= '';
if High(arr)<0 then
ShowMessage('Wprowadzona tablica jest pusta') else
begin
For I:= High(arr) downto 0 do
begin
res:= res + FloatToStr(arr[high(arr)]) + #10#13;
SetLength(arr,High(arr)-1);
end;
end;
ShowMessage(res);
end;
I dla funkcji SetLength kompilator wskazuje błąd:
Error: Type mismatch
Rozumiem, że nie zgadzają się typy danych, ale parametr arr to tablica i poza tą procedurą funkcja ta działa dla tablic.
Od razu mówię, że problem jest z pierwszym argumentem (arr), bo jak za drugi ustawię np. 2 to jest tak samo. W dodatku jak dodałem na zewnątrz jakąś inną tablicę i wstawię ją zamiast parametru do procedury to też wszystko działa.