Hallo,
es war sehr schwierig den Inhalt zu verstehen. Dazu steht in der Hilfe folgendes:
Da in Delphi keine Wertesemantik für dynamische Arrays implementiert ist, stellen "Wert"-Parameter in Routinen keine vollständige Kopie des dynamischen Arrays dar. Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| type TDynamicArray = array of Integer; procedure p(Value: TDynamicArray); begin Value[0] := 1; end; procedure Run; var a: TDynamicArray; begin SetLength(a, 1); a[0] := 0; p(a); Writeln(a[0]); end; |
Beachten Sie, dass die Zuweisung zu Value[0] in Routine p den Inhalt des dynamischen Arrays der aufrufenden Routine ändert, obwohl Value ein Wertparameter ist. Falls eine vollständige Kopie des dynamischen Arrays erforderlich ist, verwenden Sie die Standardprozedur Array.Copy, um eine Wertekopie des dynamischen Arrays zu erstellen.