![]() |
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ß |
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.
|
Re: Variable Parameter bei Prozeduren/Funktionen?
Hallo,
ja, sowas gibst:
Delphi-Quellcode:
Wenn Du Y nicht angibst, dann wird der Defaultwert genommen (im Beispiel 10).
procedure Tuwas(X: Integer; Y: Integer = 10);
Einzige Einschränkung: Optionale Parameter müssen am Ende stehen. Gruß xaromz |
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.
|
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 |
Re: Variable Parameter bei Prozeduren/Funktionen?
Delphi-Quellcode:
geht auch
procedure Foo(i: integer); overload;
procedure Foo(i:integer; x: integer); overload; |
Re: Variable Parameter bei Prozeduren/Funktionen?
Oder ein "array of const", wobei die Parameter dann arraymäßig übergeben werden müssen.
Delphi-Quellcode:
//edit: Es ist eine procedure, keine function :oops:
procedure TuWas(array of const);
begin // wirrer code :) end; . . begin TuWas([12, 4, 13]); TuWas([0 , 22, 8, 19]); end; |
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).
|
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