![]() |
Beim Aufruf einer Methode nur bestimmte Parameter übergeben
Hallo zusammen,
leider benötige ich noch einmal Hilfe. Ich habe eine Funktion, welche mit mehreren Parametern aufgerufen werden muss. Einige davon haben einen Default-Wert, sodass ich diese Parameter nicht angeben muss. Jetzt ist das Problem, dass ich beim Aufruf der Funktion nur einige Parameter übergeben möchte und der Rest soll den Default Wert erhalten. Bsp:
Delphi-Quellcode:
Wie bekomme ich es hin, wenn ich jetzt die Funktion aufrufe, die "Pflicht-Parameter" 1 und 2 eingebe, aber dann nur noch z.B. Param5 übergeben möchte und der Rest soll den Default-Wert behalten?
function (Param1, Param2: string; Param3: Integer=2; param4: string='test'; Param5: Integer=1):string
Danke für die Hilfe. |
AW: Beim Aufruf einer Methode nur bestimmte Parameter übergeben
Gar nicht. Defaultwerte gibt es nur für Parameter die nicht angegeben wurden.
Um den Parameter ganz rechts anzugeben bist du gezwungen für die Parameter dazwischen ebenfalls Werte anzugeben. Du kannst entweder in der Deklaration nachschauen, welche Werte denn die defaultwerte sind, oder (falls du der Autor bist) mehrere Versionen der Funktion anbieten, deren default Parameter anders sortiert sind. |
AW: Beim Aufruf einer Methode nur bestimmte Parameter übergeben
ok danke für die Hilfe.
|
AW: Beim Aufruf einer Methode nur bestimmte Parameter übergeben
Es kommt auf die Parameter drauf an, aber man kann auch Funktionen überladen. Dafür müssen sich die Typen der Parameter entsprechend unterscheiden.
Delphi-Quellcode:
String (s) und Integer (k) unterscheiden sich, so daß Delphi hier entscheiden kann, was es nehmen muß.
procedure blub(s: string = ''; i: Integer = 0); overload;
procedure blub(k: Integer); overload;
Delphi-Quellcode:
blub; // 1
blub(123); // 2 blub('text'); // 1 blub('x', 456); // 1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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