Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Optionale Parameter Funktion/Procedure (https://www.delphipraxis.net/201151-optionale-parameter-funktion-procedure.html)

Trafel21 27. Jun 2019 09:17

Optionale Parameter Funktion/Procedure
 
Hallo zusammen,

gibt es eine Möglichkeit die ein und dieselbe Procedure/Funktion aufzurufen mit einer unterschiedlichen Parameteranzahl?

Bspw.:

Code:
Interface
procedure Foo(a, b, c, d: Integer);

Implementation
Foo(a, b, c, d: Integer);
 



Aufruf:

foo(1,2,3,4)
foo(1,2) // c,d, sollten dann in dem Fall Null oder ein Standartwert haben.
ich hatte es mir Overload versucht, aber die richtige Syntax einfach nicht gefunden.

Stevie 27. Jun 2019 09:23

AW: Optionale Parameter Funktion/Procedure
 
http://docwiki.embarcadero.com/RADSt...ndardparameter

Gollum 27. Jun 2019 09:27

AW: Optionale Parameter Funktion/Procedure
 
Hallo,

normalerweise sollte es mit overload funktionieren:
Delphi-Quellcode:
implementation
  procedure Foo(a, b:Integer); overload;
  procedure Foo(a, b, c, d:Integer); overload;

interface
  procedure Foo(a, b:Integer);
  begin
    Foo(a, b, 0, 0);
  end;

  procedure Foo(a, b, c, d:Integer);
  begin
    ...
  end;
Was auch geht wäre:
Delphi-Quellcode:
  procedure Foo(a, b:Integer, c:Integer=0, d:Integer=0);

dummzeuch 27. Jun 2019 09:53

AW: Optionale Parameter Funktion/Procedure
 
Es gibt zwei Möglichkeiten dazu, die auch kombiniert werden können:

* Default-Parameters
* Overloaded Methods / Functions / Procedures

Wichtig dabei ist, dass der Compiler sicher entscheiden kann, welche der verschiedenen Funktionen er aufrufen soll. Das geht nur anhand der Parameter-Signatur, nicht anhand des Rückgabewertes.

Trafel21 27. Jun 2019 10:03

AW: Optionale Parameter Funktion/Procedure
 
Danke, hab Standardparameter verwendet. Vielen dank. :-D

Rollo62 27. Jun 2019 10:41

AW: Optionale Parameter Funktion/Procedure
 
Zitat:

Zitat von dummzeuch (Beitrag 1435458)
Es gibt zwei Möglichkeiten dazu, die auch kombiniert werden können:

* Default-Parameters
* Overloaded Methods / Functions / Procedures

Wichtig dabei ist, dass der Compiler sicher entscheiden kann, welche der verschiedenen Funktionen er aufrufen soll. Das geht nur anhand der Parameter-Signatur, nicht anhand des Rückgabewertes.

Ich würde der Vollständigkeit halber auch noch diese Methode mit variablem ConstArray dazuzählen, um eine variable Parameter-liste zu bekommen.
http://docwiki.embarcadero.com/Libra...ysUtils.Format


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