Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Function mit mehreren Rückgabewerten (https://www.delphipraxis.net/42597-function-mit-mehreren-rueckgabewerten.html)

gordon freeman 21. Mär 2005 13:15


Function mit mehreren Rückgabewerten
 
Hi Leute,

wie deklariere ich eine Funktion, der zwei Werte übergeben werden und die auch zwei Werte zurückgibt?

tia, gordon

Luckie 21. Mär 2005 13:16

Re: Function mit mehreren Rückgabewerten
 
Gar nicht. Nimm eine Prozedur mit var-Parametern.

himitsu 21. Mär 2005 13:24

Re: Function mit mehreren Rückgabewerten
 
Luckie hat "hauptsächlich" Recht ... es geht nunmal nur ein Wert.

Var-Parameter:
Delphi-Quellcode:
Procedure xyz(Parameter1, Parameter2 ...
  Var RückgabeWert1, RückgabeWert2: Typ; Var RückgabeWert3: Typ);
Vorbau Var angiebt, dass die Prozedur den Wert ändern kann
und man mit OUT anhgibt, das es sich nur um einen Ausgabeparameter handelt (siehe OH)
Delphi-Quellcode:
Procedure xyz(Parameter1, Parameter2 ...
  Out RückgabeWert1, RückgabeWert2: Typ; Out RückgabeWert3: Typ);

Oder du teilst den Ausgabeparameter etwas auf > Stichwort Record:
Delphi-Quellcode:
Type MyRecord = Record
    RückgabeWert1, RückgabeWert2: Typ;
    RückgabeWert3: Typ;
  End;

Function xyz(Parameter1, Parameter2 ... ): MyRecord;

Pseudemys Nelsoni 21. Mär 2005 13:25

Re: Function mit mehreren Rückgabewerten
 
Zumal so eine Funktion auch gar keinen Sinn machen würde, denn Welche Variable oder sonstwas kann 2 Werte aufnehmen?

himitsu 21. Mär 2005 13:29

Re: Function mit mehreren Rückgabewerten
 
Zitat:

Zitat von Pseudemys Nelsoni
... denn Welche Variable oder sonstwas kann 2 Werte aufnehmen?

Ein Record, Array ..... :gruebel:

alcaeus 21. Mär 2005 13:33

Re: Function mit mehreren Rückgabewerten
 
Evtl. könnte man auch einen Variant dazu verwenden:

Delphi-Quellcode:
function Foo(Bar: Integer): Variant;
begin
  Result := VarArrayCreate([1,3], varInteger);
  Result[0] := Bar;
  Result[1] := Bar+1:
  Result[2] := Bar-1;
end;
Greetz
alcaeus

Pseudemys Nelsoni 21. Mär 2005 13:41

Re: Function mit mehreren Rückgabewerten
 
Zitat:

Ein Record, Array .....
dann kann man gleich einen record/array zurückgeben. und nicht über 2 werte..


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