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 Array-Parameterübergabe (https://www.delphipraxis.net/85096-array-parameteruebergabe.html)

LucasL 25. Jan 2007 21:18


Array-Parameterübergabe
 
Hallo zusammen,

um ein Array (of Single) zu übergeben habe ich folgendes versucht:

Delphi-Quellcode:

  obj.func([0.3, 1.0], [0.0]);
Die Fehlermeldung: "E2001 Ordinaltyp erforderlich" - Daraus schließe ich, dass ich nur Arrays irgendeines Ordinaltyps auf diese Weise übergeben kann. Ist dem so :gruebel:? Wenn ja, wäre das doch eine ziemlich hässliche Einschränkung...

Danke und Gruß,
Lucas

mkinzler 25. Jan 2007 21:20

Re: Array-Parameterübergabe
 
Du mußt ne Variable übergeben.

LucasL 25. Jan 2007 21:25

Re: Array-Parameterübergabe
 
okay...und warum?

mkinzler 25. Jan 2007 21:26

Re: Array-Parameterübergabe
 
Bei der Übergabe eines Arrays wird ein Zeiger auf diesen Übergeben.

Hawkeye219 25. Jan 2007 21:35

Re: Array-Parameterübergabe
 
Hallo Lucas,

siehe auch diesen Thread.

Die Lösung wäre ein konstantes Array oder (ab Delphi 2005/6) das hier:

Delphi-Quellcode:
type
  TDynSingleArray = array of single;
begin
  obj.func (TDynSingleArray.Create(0.3, 0.1),
            TDynSingleArray.Create(0.0));
end;
Gruß Hawkeye

Jelly 25. Jan 2007 21:39

Re: Array-Parameterübergabe
 
Seit wann hat ein Array ein Constructor :gruebel:

3_of_8 25. Jan 2007 21:40

Re: Array-Parameterübergabe
 
Ich könnte mir gut vorstellen, dass das in den neueren Delphi-Versionen geht.

LucasL 25. Jan 2007 22:02

Re: Array-Parameterübergabe
 
Zitat:

Zitat von mkinzler
Bei der Übergabe eines Arrays wird ein Zeiger auf diesen Übergeben.

Normalerweise ja. Vielleicht sorgt der Array-Konstruktor dafür, dass trotzdem ein Werteparameter übergeben wird. In der Hilfe zu "Offene Array-Konstruktoren" steht zwar etwas dazu, aber es fehlen Details.

Zitat:

type
TDynSingleArray = array of single;
begin
obj.func (TDynSingleArray.Create(0.3, 0.1),
TDynSingleArray.Create(0.0));
end;
Danke Hawkeye, das ist schonmal was :).

3_of_8 25. Jan 2007 22:05

Re: Array-Parameterübergabe
 
Du sagst du willst ein Array übergeben.

Du schreibst aber:
Delphi-Quellcode:
obj.func([0.3, 1.0], [0.0]);
Das sind zwei Arrays für mich. Hast du eventuell die Klammern falsch gesetzt?

Delphi-Quellcode:
obj.func([0.3, 1.0, 0.0]);

LucasL 25. Jan 2007 22:09

Re: Array-Parameterübergabe
 
Ne... ich dacht mir im Code-Beispiel nur "wieso so geizig"... ;)


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