Thema: Delphi Funktionen

Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10
  Alt 8. Mai 2003, 08:43
nJa. Weil sie beim Funktiosaufruf in die Parametervariablen der Funktion kopiert werden, daher ist es unerheblich wie die Variablen der Funktionsparameter heißen, allein der Typ spielt eine Rolle.

Das Kopieren nennt man auch CallByValue. Dann gibt es noch CallByReference. Da wird ein Zeiger auf die Speicherstelle übergeben und von der Funktion wird diese Speicherstelle veränder.
Delphi-Quellcode:
procedure foo(var s : String);
begin
  s := 'Hello world';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  t : String;
begin
  t := 'foobar';
  foo(t);
  ShowMessage(t);
end;
Was gibt dir jetzt ShowMessage aus? "foobar" oder "Hello world"? Richtig wäre "Hello world", weil ein Zeiger auf die Variable T übergeben wurde und die Prozedur foo diese Speicherstelle direkt verändert hat.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat