Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion die beliebig viele Parameter annehmen kann (https://www.delphipraxis.net/65284-funktion-die-beliebig-viele-parameter-annehmen-kann.html)

faux 14. Mär 2006 16:32


Funktion die beliebig viele Parameter annehmen kann
 
Hallo!

Hätte mal kurz ne Frage:
Wie kann ich denn eine Prozedur/Funktion so anschreiben, dass ihr beliebig viele Parameter gleichen Types übergeben werden können (á la WriteLn)?
Also vergleichbar mit dem params-Schlüsselwort aus C#.

Danke schon mal.
Grüße
Faux

Valle 14. Mär 2006 16:35

Re: Funktion die beliebig viele Parameter annehmen kann
 
Ich bin mir nicht sicher ob das mit C# funktioniert, wenn ja dann so(in etwa):
Delphi-Quellcode:
function DoSomething(Wert: Array of String): Boolean;
//EDIT: Vorschl. & Kr. :Können sich die Tags nicht beim abschicken selbst schließen??

Kroko1999 14. Mär 2006 16:37

Re: Funktion die beliebig viele Parameter annehmen kann
 
Delphi-Quellcode:
function MyFkt (const A: array of const): MyTyp;
begin
end;
mit dem Aufruf
Delphi-Quellcode:
A := MyFkt ([12,'Affe',1.4]);
Wie Du den Typ der einzelnen Parameter bekommst, sollte in der Hilfe stehen (mein Kopf ist gerade leer, muss in 30' arbeiten :oops:)

Elvis 14. Mär 2006 16:39

Re: Funktion die beliebig viele Parameter annehmen kann
 
  • Wie in .Net? Gar nicht.
  • Unbestimmte Anzahl? Arrays ( übergeben als einfache inline arrays [a, b, c])
  • Unbestimmte anzahl unbestimmten Types? const open array
    Delphi-Quellcode:
    DeineMethode(const param : array of const)
    DeineMethode([1, 'b']);

Hui, janz schön flinker Krokophant... :gruebel:

faux 14. Mär 2006 16:42

Re: Funktion die beliebig viele Parameter annehmen kann
 
Danke mal, aber geht das nicht auch ohne Array, denn der Benutzer meiner Prozedur müsste dann ja die Parameter immer in [ und ] schreiben.
Der Typ soll übrigens immer der selbe sein; also in meinem Falle alles string.
Kann man das nicht genau so wie bei WriteLn lösen, das würde mir am besten gefallen?!

Zitat:

Zitat von Elvis
  • Wie in .Net? Gar nicht.

:cry: Naja, man weiß ja was man von .NET hat. :D

Grüße
Faux

Khabarakh 14. Mär 2006 17:03

Re: Funktion die beliebig viele Parameter annehmen kann
 
Zitat:

Zitat von faux
Kann man das nicht genau so wie bei WriteLn lösen, das würde mir am besten gefallen?!

Da musst du es wie Borland machen: Bau einen eigenen Compiler :stupid: .

faux 14. Mär 2006 17:07

Re: Funktion die beliebig viele Parameter annehmen kann
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von faux
Kann man das nicht genau so wie bei WriteLn lösen, das würde mir am besten gefallen?!

Da musst du es wie Borland machen: Bau einen eigenen Compiler :stupid: .

OK, bin dabei. :coder2:
Naja, das ist dann doch etwas zu aufwändig. Wieso können die das nicht in den Delphi-Syntax integrieren? :roll:

Danke trotdzem.
Grüße
Faux

NicoDE 14. Mär 2006 17:08

Re: Funktion die beliebig viele Parameter annehmen kann
 
Das geht nur mit varargs (die Funktion muss extern und cdecl sein).


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