Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Procedure mit Rückgabe wert schreiben (https://www.delphipraxis.net/32676-procedure-mit-rueckgabe-wert-schreiben.html)

Christian18 27. Okt 2004 08:49


Procedure mit Rückgabe wert schreiben
 
Hallo,

kann man mit Delphi auch eine Procedure mit einen Rückgabewert vom Typ Real Deklarieren??? wenn ja wie???

Mit freundlichen Grüßen

Christian

Treffnix 27. Okt 2004 08:51

Re: Procedure mit Rückgabe wert schreiben
 
Über var-Parameter.

Delphi-Quellcode:
Procedure gibmirnezahl( var Zahl: Real );
Begin
  Zahl:= 5.5;
End;

Procedure Execute;
var MeinReal;
Begin
  gibmirnezahl( MeinReal );
End;

tommie-lie 27. Okt 2004 09:21

Re: Procedure mit Rückgabe wert schreiben
 
Alternativ als Funktion (just to be sure):
Delphi-Quellcode:
function gibmirnezahl: Real;
begin
  Result := 5.5;
end;

procedure Execute;
  var MeinReal;
begin
  MeinReal := gibmirnezahl;
end;

runningsoft 30. Okt 2004 20:21

Re: Procedure mit Rückgabe wert schreiben
 
Zitat:

Zitat von Treffnix
Über var-Parameter.

Delphi-Quellcode:
Procedure gibmirnezahl( var Zahl: Real );
Begin
  Zahl:= 5.5;
End;

Procedure Execute;
var MeinReal;
Begin
  gibmirnezahl( MeinReal );
End;

Seit welcher Delphi-Version haben denn Prozeduren Rückgabewerte?
Das ist mir neu.

In Deinem Quelltext ist die Variable "Zahl" doch der Wert, der der Prozedur selbst übergeben wird, und nicht ein Wert, den die Prozedur zurückgibt.


Steffen

CalganX 30. Okt 2004 20:23

Re: Procedure mit Rückgabe wert schreiben
 
Hi Steffen,
in gewisser Weise schon, weil der Parameter mit var deklariert wird. Dadurch wird dort keine Konstante (oder eine Variable mit einem Wert) übergeben, sondern nur eine Variable, der einen Wert übergeben wird. Es ist also eher ein Rückgabewert, als ein Parameter (vom Verständnis her). ;)

Chris

Dax 30. Okt 2004 20:23

Re: Procedure mit Rückgabe wert schreiben
 
Diese var-Parameter in Prozeduren gibt's schon seit TurboPascal, und die Prozedur kann diesen Wert auch lesen. Wenn du willst, das der Wert nicht gelesen werden kann, kannst du ihn alternativ als Delphi-Referenz durchsuchenout deklarieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 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