Einzelnen Beitrag anzeigen

SirTwist

Registriert seit: 28. Sep 2006
198 Beiträge
 
Delphi XE Professional
 
#6

Re: Klassen als Parameter, mit oder ohne "var"!?

  Alt 22. Sep 2008, 20:36
Vielleicht wirds hiermit etwas klarer:

Bei einer normalen Übergabe ohne Keyword wird ein Zeiger auf das eigentliche Objekt übergeben. Damit können innerhalb der Funktion alle Felder/Properties des Objekts gelesen und auch geändert werden und diese Änderungen sind dann auch in der aufrufenden Funktion erhalten. Nur wenn man dem Parameter innerhalb der Funktion einen neuen Wert zuweist, wird dieser neue Wert nicht in die aufrufende Funktion übernommen.

Gibst Du aber das Keyword "var" an, dann wird ein Zeiger auf den Zeiger übergeben (sozusagen). Du kannst auch jetzt alle Werte des Objektes ändern, aber Du kannst der Variablen auch einen neuen Wert zuweisen oder ihn löschen, und diese Änderungen sind dann auch in der aufrufenden Funktion gültig.

Gruß,
SirTwist
  Mit Zitat antworten Zitat