Forum: Object-Pascal / Delphi-Language
by oki,
25. Sep 2008
Ja, dann haben wir wirklich aneinander vorbei gesprochen. Ich meinte eigentlich die Inhalte.
Dann sollte das jetzt geklärt sein. :mrgreen:
Gruß oki
Forum: Object-Pascal / Delphi-Language
by oki,
25. Sep 2008
Ja klar, wenn ich den Parameter nicht als var übergebe, dann bleibt der Zeiger nach außen natürlich "konstant". Ich kann den Inhalt eines Objektes in der Procedure ändern, weil ich auf die enthaltenen Daten zugreife auf dessen Struktur der Zeiger der Instanz zeigt.
Ich dachte nur, dass Delphi das mit allen Zeigern so macht und ein dynamisches Array ist halt ein Zeiger auf den Speicher.
Gruß...
Forum: Object-Pascal / Delphi-Language
by oki,
25. Sep 2008
Dann versteh ich aber nicht, warum Delphi ein dynamisches Array als Parameter kopieren soll.
Gruß
Forum: Object-Pascal / Delphi-Language
by oki,
25. Sep 2008
ok,
somit ist das Verändern der Inhalte eines dynamischen Arrays innerhalb der Procedure ohne var-Übergabe genauso möglich wie mit var-Übergabe. Um das interne kopieren zu vermeiden, macht es Sinn den Parameter mittels var zu übergeben (was ja eigentlich generell die Übergabe eines Zeigers bewirkt).
Damit ergibt sich aber automatisch, dass Delphi intern die Parameterübergabe für...
Forum: Object-Pascal / Delphi-Language
by oki,
25. Sep 2008
Moin,
bei der Übergabe in Funktionen/Proceduren werden Arrays angegeben wie dynamische Arrays. Dabei sollte es egal sein, ob ein- oder mehrdimensional.
Procedure SetArr(Value : Array of Integer);
Die Methode mit der Typdeklaration wurde ja schon benannt.
type