Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array als Parameter uebergeben? (https://www.delphipraxis.net/13548-array-als-parameter-uebergeben.html)

HPW 20. Dez 2003 19:48


Array als Parameter uebergeben?
 
Ich versuche im Moment einen Aufruf dynamisch zu erzeugen:

Aufruf vorher:
myfunction( 1, 'plugincommand', 'Description', [1,1,6], 3 );

Nun möchte ich den Parameter [1,1,6] mit delphi erzeugen.

ParArray : array[1..10] of Integer;

ParArray[1] := 1;
ParArray[2] := 1;
ParArray[3] := 6;

Aber wenn ich das so aufrufe:

myfunction( 1, 'plugincommand', 'Description', ParArray, 3 );

bekomme ich 'Inkompatible Typen'.

Irgendwie habe ich dabei das Brett vorm Kopf.

Kann mir da jemand weiter helfen?

Chewie 20. Dez 2003 19:50

Re: Array als Parameter uebergeben?
 
Erstell dir einen Typ:

Delphi-Quellcode:
TParArray = Array[1..10] of Integer;
und dann:
Delphi-Quellcode:
ParArray: TPayArray;

HPW 20. Dez 2003 19:56

Re: Array als Parameter uebergeben?
 
Danke für den Tip!

Ich bekomme aber immer noch

[Fehler] myprog.dpr(460): Inkompatible Typen: 'Array' und 'TParArray'

Was kann das noch sein?

Chris1986 20. Dez 2003 20:00

Re: Array als Parameter uebergeben?
 
Die Deklaration müsste so aussehen:
Delphi-Quellcode:
function my_function (var wo: TParArray): eine_Funktion_braucht_einen_Rueckgabewert :oops: ;
MfG
Christian

Niels 20. Dez 2003 20:09

Re: Array als Parameter uebergeben?
 
Moin!

@Chris1986:
Eine Funktion braucht nen Rückgabewert sonst wird das nix :)
Außerdem kann in einen Funktionskopf / Prozedurkopf (wenn ich nicht ganz falsch liege) nur ein dynamisches Array.

@HPW:
Kopier mal bitte deinen Funktionskopf hierher, dass man sehen kann wo der Fehler liegt. Danke!

MfG Niels

Chewie 20. Dez 2003 20:11

Re: Array als Parameter uebergeben?
 
Zitat:

Zitat von Niels
Außerdem kann in einen Funktionskopf / Prozedurkopf (wenn ich nicht ganz falsch liege) nur ein dynamisches Array.

Wieso denn das :gruebel:

Chris1986 20. Dez 2003 20:15

Re: Array als Parameter uebergeben?
 
Zitat:

Zitat von Niels
Moin!

@Chris1986:
Eine Funktion braucht nen Rückgabewert sonst wird das nix :)
Außerdem kann in einen Funktionskopf / Prozedurkopf (wenn ich nicht ganz falsch liege) nur ein dynamisches Array.

Ich wusste ich habe was vergessen. Ausserdem kenne ich den Rückgabewert ja nicht :lol: Naja es ging ja auch nur um die Übergabe des Arrays.

MfG
Christian

Niels 20. Dez 2003 20:16

Re: Array als Parameter uebergeben?
 
Moin!

@Chewie:
Du gibst ja beim Aufruf ein Array an die Funktion / Prozedur weiter und damit wird auch die Größe des Array im Funktions- / Prozedurkopf bestimmt. Die darfst du vorher nicht festlegen!

und nochmal zu dir HPW:

Wenn du irgendwo stehen hast:

Delphi-Quellcode:
type
  TParArray = array[0..10] of integer;

var
  x: TParArray;

....

procedure bla(k: array of integer);
begin
  ....
end;
Da kannst du die Funktion bla mit dem Befehl bla(x) aufrufen ohne eine Fehlermeldung zu bekommen. Der Compiler mekrt dann, dass TParArray auch ein array of integer ist.

MfG Niels

HPW 20. Dez 2003 20:16

Re: Array als Parameter uebergeben?
 
Das mit der Typendeklaration war schon richtig!

Hiermit scheint jetzt alles zu gehen:

TParArray = Array[1..10] of Byte;

Nochmals Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.

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