![]() |
freiwillige Parameter
Hallo zusammen
Ich möchte eine eigene Funktion schreiben, bei der man nicht alle Parameter angeben muss:
Delphi-Quellcode:
Es sollte bei dieser Funktion jetzt möglich sein, nur zwei Faktoren mitzugeben.
function Multiplizieren(Faktor1: Integer; Faktor2: Integer; Faktor3: Integer): Integer;
Damit ich die Funktion auch folgendermassen aufrufen kann:
Delphi-Quellcode:
Der Faktor drei sollte dann in der kurz Hilfe in eckigen Klammern erscheinen.
Resultat := Multiplizieren(4,5);
Danke schon mals im voraus |
Re: freiwillige Parameter
Hallo,
dazu musst Du einen Default-Wert definieren:
Delphi-Quellcode:
Wenn Du einen Parameter weglässt, dann wird der Default-Wert genommen.
function Multiplizieren(Faktor1: Integer; Faktor2: Integer; Faktor3: Integer = 0): Integer;
Das funktioniert aber natürlich nur am Ende der Parameterliste. Gruß xaromz |
Re: freiwillige Parameter
Delphi-Quellcode:
edit: Zu spät...
function Multiplizieren(Faktor1: Integer; Faktor2: Integer; Faktor3: Integer = 1): Integer;
Achja: Da du den Parameter als Konstant markieren musst, kannst du ihn in der Funktion auch nicht mehr verändern. edit2: Ich quatsche dämmliches Zeugs :wall: .... |
Re: freiwillige Parameter
Oder du übergibst ein Array. Oder wie die Funktion Format ein Array of const.
Denn bei der Variante mit den Defaultwerten würde es ja bedeuten das man diese Werte nicht übergeben kann. |
Re: freiwillige Parameter
OKe alles klar danke vielmals :thumb:
|
Re: freiwillige Parameter
Oder noch eine Möglichkeit: Du benutzt die Vorzüge der Aufrufkonvention CDECL.
Delphi-Quellcode:
program Project1; {$APPTYPE CONSOLE} function param4(a,b,c,d:integer):integer; cdecl; begin result:=a+b; end; var param2:function(a,b:integer):integer; cdecl; var param3:function(a,b,c:integer):integer; cdecl; begin param2:=@param4; param3:=@param4; writeln(param2(4,5) ,' ', param3(4,5,2) ,' ', param4(4,5,2,-12) ); readln; end. |
Re: freiwillige Parameter
Hallo,
Zitat:
Gruß xaromz |
Re: freiwillige Parameter
Wenn es nur um Möglichkeiten geht, dann sollte man auch noch
![]() |
Re: freiwillige Parameter
Zitat:
ABER: Da es sich in der Fragestellung um Faktoren handelt (laut Benennung), würde hier ein Default-Wert von 1 den erwünschten Erfolg bringen und keine Sonderbehandlung nötig machen. /EDIT: Sorry für den Doppelpost - nicht aufgepasst... |
Re: freiwillige Parameter
@Mütze: ok, das stimmt. daran hatte ich nicht gedacht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz