Einzelnen Beitrag anzeigen

Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Stringgrid: Scroll-Focus entfernen

  Alt 26. Apr 2019, 07:35
procedure Proc2(S: String; var X: Integer; Y: Integer);
S: Parameter
X: Parameter
Y: Parameter = Referenzparameter
Wird X in der Prozedur verändert, ändert sich auch die Variable das Aufrufers
Wird Y in der Prozedur verändert, ändert sich die Variable das Aufrufers NICHT

Das var kann man sich wie einen Pointer (eine Referenz) auf die eigentliche Variable beim Aufrufer vorstellen, der an die Prozedur übergeben wird.

http://bergt.de/workshop/delphi/html/delphi39.htm
"s,y" sind normale übergabeparameter
Die "var x" existiert dort wo sie aufgerufen wird:
Delphi-Quellcode:
procedure btnCSVClick(Sender: TObject);
var Zahl1: integer;
   begin
          proc2(test, zahl1, zahl2 );
   end;
Somit wird beim aufruf eine druch die Variable "X" eine Referenz auf Zahl1 mitgegeben ?

Wäre dann folgendes zulässig ?
Delphi-Quellcode:
procedure btnCSVClick(Sender: TObject);
var Zahl1: integer;
    X: integer; //X wird ja bereits in der proc2 als variable verwendet
   begin
          proc2(test, zahl1, zahl2 );
   end;
Danke für die Hilfe,

Int3g3r

Geändert von Int3g3r (26. Apr 2019 um 07:38 Uhr)
  Mit Zitat antworten Zitat