Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wieso funktioniert das hier mit OUT? (https://www.delphipraxis.net/172173-wieso-funktioniert-das-hier-mit-out.html)

Popov 17. Dez 2012 12:13

Wieso funktioniert das hier mit OUT?
 
Nach meinem Verständnis übergeben mit out deklarierten Variablen keine Werte, bzw. werden diese vorher gelöscht. Wieso funktioniert das hier?

Delphi-Quellcode:
type
  Txy = (x, y);

procedure Test(out xy: Txy);
begin
  if xy = x then ShowMessage('x') else ShowMessage('y');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  xy: Txy;
begin
  xy := y; // mal x, mal y
  Test(xy);
end;
//Edit:

Weil es keine Variable ist und nur die Adresse übergeben wird?

SirThornberry 17. Dez 2012 12:15

AW: Wieso funktioniert das hier mit OUT?
 
out löscht nichts sondern ist einfach zu Verdeutlichung das über den Parameter ausschließlich Werte zurück gegeben werden.

Bummi 17. Dez 2012 12:22

AW: Wieso funktioniert das hier mit OUT?
 
versuch mal das ...
Delphi-Quellcode:

procedure Test(out xy: String);
begin
  ShowMessage(xy);
end;


procedure Test2(var xy: String);
begin
  ShowMessage(xy);
end;

procedure TForm4.Button1Click(Sender: TObject);
const
  C_S= 'Schau mal da';
var
 s:String;
begin
  s := C_S ;
  Test(s);
  Test2(s);


  s := C_S;
  Test(s);
  s := C_S;
  Test2(s);
  s := C_S;

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz