Forum: Programmieren allgemein
Delphi
by Sir Rufo,
14. Mai 2014
Ein absolutes, definitives und ultimatives NEIN!
Es wird eben nicht die Instanz übergeben, sondern eine Referenz/Zeiger/Pointer (wie auch immer du das definieren willst) auf die Instanz.
Es wird nicht der Schlüssel (Referenz/Zeiger/Pointer) geändert, sondern die Instanz!
Und selbst wenn du in dem Falle den Wert von AKey änderst, dann wird der Wert von
procedure Foo( AKey : TWohnung );...
Forum: Programmieren allgemein
Delphi
by Sir Rufo,
13. Mai 2014
Ähm, wenn das so sein sollte, dann dürften auch keine Methoden ausgeführt werden, denn die könnten ja Eigenschaften verändern. Wofür will ich dann eine Instanz übergeben?
(Es wird ja gar nicht die Instanz übergeben, nur der Weg, wie ich dort hinkomme und bei const kann ich den Weg auch gar nicht ändern)
Forum: Programmieren allgemein
Delphi
by Sir Rufo,
13. Mai 2014
@OlafSt
Wenn ich dir meinen Schlüssel zu meiner Wohnung gebe, dann kannst du in die Wohnung rein und dort umräumen.
Tauscht du den Schlüssel nun aus und gibts mir diesen zurück, komme ich nicht mehr in meine Wohnung.
procedure Foo( var AKey : TWohnung );
Gebe ich dir eine Kopie meines Schlüssels, dann kannst du immer noch in die Wohnung rein und umräumen.
Da ich aber keinen Schlüssel von...
Forum: Programmieren allgemein
Delphi
by Sir Rufo,
12. Mai 2014
Wenn man weiß was bei einer Instanz übergeben wird (nur eine Referenz, quasi eine Visitenkarte), dann versteht man auch die Delphi-Dokumentation.
Mit dem var wird die gleiche Visitenkarte (Referenz) übergeben. Bemale ich die, dann ist die bemalt.
Ohne dem var wird eine Kopie der Visitenkarte (Referenz) übergeben. Bemale ich die, dann ist eben diese Kopie bemalt und das Original bleibt...
Forum: Programmieren allgemein
Delphi
by Sir Rufo,
12. Mai 2014
Es gibt call by value, call by reference und const parameter.
Ein kleiner Test zeigt die Unterschiede
program dp_180328;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
Forum: Programmieren allgemein
Delphi
by Sir Rufo,
12. Mai 2014
Hier wird das doch erklärt? :gruebel:
http://docwiki.embarcadero.com/RADStudio/de/Parameter_(Delphi)