Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variable Parameter bei Prozeduren/Funktionen? (https://www.delphipraxis.net/48251-variable-parameter-bei-prozeduren-funktionen.html)

Ungeübter 22. Jun 2005 21:07


Variable Parameter bei Prozeduren/Funktionen?
 
Hi,

gibt es in Delphi die Möglichkeit variable Parameter für Prozduren/Funktionen zu benutzen? Sprich Übergabeparameter die nicht zwingend bei jedem Aufruf übergeben werden müssen sondern eben nur wenn man sie innerhalb der Prozedur/Funktion áuch benutzt?

Gruß

SirThornberry 22. Jun 2005 21:11

Re: Variable Parameter bei Prozeduren/Funktionen?
 
nicht das ich wüsste, aber du kannst einen pointer auf eine struktur übergeben und wenn dieser nil ist gibts logischer weise auch keine daten.

xaromz 22. Jun 2005 21:11

Re: Variable Parameter bei Prozeduren/Funktionen?
 
Hallo,

ja, sowas gibst:
Delphi-Quellcode:
procedure Tuwas(X: Integer; Y: Integer = 10);
Wenn Du Y nicht angibst, dann wird der Defaultwert genommen (im Beispiel 10).
Einzige Einschränkung: Optionale Parameter müssen am Ende stehen.

Gruß
xaromz

SirThornberry 22. Jun 2005 21:17

Re: Variable Parameter bei Prozeduren/Funktionen?
 
naja, bei der variante wird aber dann eben ein wert übergeben und man weiß nicht ob es eben nichts ist oder zufällig jemand genau den dafault wert meint. Und so wie ich die frage verstanden hab soll ja nicht mit einem defaultwert irgendwas gemacht werden sondern gar nix wenn ein parameter nicht übergeben wird.

xaromz 22. Jun 2005 21:18

Re: Variable Parameter bei Prozeduren/Funktionen?
 
Hallo,

dann muss man eben einen Default nehmen, der nicht vorkommen kann (z. B. MaxInt) ud entsprechend reagieren.

Gruß
xaromz

nailor 22. Jun 2005 21:24

Re: Variable Parameter bei Prozeduren/Funktionen?
 
Delphi-Quellcode:
procedure Foo(i: integer); overload;
procedure Foo(i:integer; x: integer); overload;
geht auch

dizzy 22. Jun 2005 22:04

Re: Variable Parameter bei Prozeduren/Funktionen?
 
Oder ein "array of const", wobei die Parameter dann arraymäßig übergeben werden müssen.
Delphi-Quellcode:
procedure TuWas(array of const);
begin
  // wirrer code :)
end;
.
.
begin
  TuWas([12, 4, 13]);
  TuWas([0 , 22, 8, 19]);
end;
//edit: Es ist eine procedure, keine function :oops:

NicoDE 22. Jun 2005 23:02

Re: Variable Parameter bei Prozeduren/Funktionen?
 
Wenn Du versuchst Funktionen mit variabler Anzahl von Parametern zu schreiben, dann geht das nur mit externen (CBuilder) cdecl-Funktionen die eingebunden (linked) werden (siehe Doku zur varargs-Direktive).

Ungeübter 24. Jun 2005 00:42

Re: Variable Parameter bei Prozeduren/Funktionen?
 
Ah, hätte mich ja auch gewundert wenn das nicht funktionieren würde. Dankeschön.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:28 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-2025 by Thomas Breitkreuz