Hi,
das ist wieder ein anderes Problem.
Du spricht die Parameterübergabe per Call-By-Reference und Call-By-Value an.
Hast du etwas deaklariert wie
procedure schreib(s: string; foo: TMyArray);
Dann ist
foo eine Kopie der übergebenen Variablen. In der Funktion arbeitest du die ganze Zeit mit dieser Kopie und änderst auch nur diese.
Möchtest du allerdings die übergebene Variable ändern, muss du der Prozedur "sagen", dass sie dies tun soll. Mittels
var übergibst du die Speicheradresse des Parameters und es wird dann auch in diesem geändert. Du arbeitest also nicht mehr mit einer Kopie:
procedure schreib(s: string; var foo: TMyArray);
Du kannst natürlich auch eine Funktion schreiben und das Ganze dann so aufrufen:
Delphi-Quellcode:
function schreib(s: string): TMyArray;
var
Temp: TMyArray;
i: Integer;
begin
// hier das Array füllen ...
for i := 1 to 5 do
begin
Temp[i] := s;
end;
// ... und dann als Ergebnis zurückgeben
Result := Temp;
end;
Die Zuweisung zu deinem Array würde dann so erfolgen:
test1 := schreib('hallo');