Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion mit unendlicher Parameterzahl (https://www.delphipraxis.net/30410-funktion-mit-unendlicher-parameterzahl.html)

egal 24. Sep 2004 10:45


Funktion mit unendlicher Parameterzahl
 
Hallo, ich muss eine funktion schreiben, wo die Parameterzahl ein Benutzer festlegt, quasi so:
function test(index1, index2,..,indexn:integer): integer
Wie kann man das realisieren? Danke!

sakura 24. Sep 2004 10:51

Re: Funktion mit unendlicher Parameterzahl
 
Wie wäre es mit einem Hier im Forum suchenArray als Parameter :zwinker:

...:cat:...

LarsMiddendorf 24. Sep 2004 10:51

Re: Funktion mit unendlicher Parameterzahl
 
Code:
function test(index:array of integer): integer ;
Und dann mit z.B. mit test([1,2,3]) aufrufen.

Sebastian Nintemann 24. Sep 2004 10:52

Re: Funktion mit unendlicher Parameterzahl
 
Hallo egal!

Die DP-Suche führt dich zu diesem threat (habs nur noch gefunden weil ich wusste, dass es um concat ging). Dort wird beschrieben warum es nicht geht und wie man das Problem alternativ lösen kann.
Hoffe das hilft dir!

Viele Grüße, Sebastian

egal 24. Sep 2004 11:05

Re: Funktion mit unendlicher Parameterzahl
 
das wäre eine Möglichkeit. Die Funktion soll eigentlich so aussehen:

function test (cStr1:string,index1:integer,cStr2:string,index2:i nteger
,..., cStrn:string,indexn:integer, feldNr:integer): integer;

Und der Benutzer kann so z.B. eingeben:

test(a,1, b,2, c,3,...,100);

Wenn ich jetzt die Arrays benutze, muss ich die Function so deklarieren

test(cStr: array of String, index: array of integer,feldNr:integer);

oder doch irgendwie anders?

alcaeus 24. Sep 2004 11:07

Re: Funktion mit unendlicher Parameterzahl
 
Hi egal,

du kannst Arrays verwenden, oder wir können dir erklären warum du es tun musst :mrgreen:
Falls du dir das andere Thema durchgelesen hast, dann solltest du ja wissen, dass so eine Funktion nicht möglich ist.

Greetz
alcaeus

sakura 24. Sep 2004 11:14

Re: Funktion mit unendlicher Parameterzahl
 
Dann mache folgendes:
Delphi-Quellcode:
type
  TValue = record
    StrValue: String;
    IntValue: Integer;
  end;
  TValues = array of TValue;

[...]

procedure Test(Values: TValues);
var
  I: Integer;
begin
  for Low(Values) to High(Values) do
  begin
    // for each value do...
    [...]
  end;
end;
...:cat:...

static_cast 24. Sep 2004 11:15

Re: Funktion mit unendlicher Parameterzahl
 
Hi

könnte man nicht
Delphi-Quellcode:
procedure foo(bar:array of variant);
nehmen? kann man doch alles übergeben was man will!?

sakura 24. Sep 2004 11:17

Re: Funktion mit unendlicher Parameterzahl
 
Zitat:

Zitat von static_cast
könnte man nicht
Delphi-Quellcode:
procedure foo(bar:array of variant);
nehmen? kann man doch alles übergeben was man will!?

Ja, aber Variants sind aufgrund ihrer varianten Natur sehr langsam.

...:cat:...

egal 24. Sep 2004 11:59

Re: Funktion mit unendlicher Parameterzahl
 
Alles klar, dann nehme ich am besten records.
Allen vielen, vielen Dank für schnelle und umfangsreiche Hilfe!:mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz