Delphi-PRAXiS
Seite 2 von 2     12   

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)

3_of_8 25. Jan 2007 22:15

Re: Array-Parameterübergabe
 
Delphi-Quellcode:
{$O-}

procedure TForm1.test(a: array of Single);
begin
  asm nop end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  test([4.2, 13.37]);
end;
Bei mir kompiliert das und das Array enthält auch die richtigen Werte.

EDIT: Mit zwei Arrays gehts genauso. Wie hast du deine Methode deklariert?
EDIT2: Unter Delphi 7.

Hawkeye219 25. Jan 2007 22:30

Re: Array-Parameterübergabe
 
Manuel, du hast Recht. Es hängt einzig und allein von der Signatur der aufgerufenen Routine ab. Bei dem von mir verlinkten Thread wurde die Funktion CreatePolygonRgn verwendet, die einen typenlosen CONST-Parameter erwartet. Hier funktioniert nur die von mir vorgestellte Lösung mit dem Konstruktor-Aufruf (und auch nur ab Delphi 2005/6). Wenn (wie in deinem Beispiel) der Parameter mit Typ vereinbart wird, funktionieren beide Lösungen - auch in früheren Delphi-Versionen.

Gruß Hawkeye

LucasL 26. Jan 2007 20:17

Re: Array-Parameterübergabe
 
Stimmt, es funktioniert. Folgendes kompiliert jedoch nicht (und so habe ich es gemacht):

Delphi-Quellcode:
type
  TInput = array of Single;

procedure proc(Input: TInput);
asm
  nop;
end;

begin
  proc([0.0, 1.0]);
end;

Hawkeye219 26. Jan 2007 20:31

Re: Array-Parameterübergabe
 
Hallo Lucas,

du mußt deine Routine ein wenig abändern:

Delphi-Quellcode:
procedure proc(const Input: array of Single);
asm
  nop;
end;
Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Seite 2 von 2     12   

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