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 var Parameter (https://www.delphipraxis.net/22104-array-als-var-parameter.html)

Jacki O 12. Mai 2004 13:59


Array als var Parameter
 
Hallo,

ich möchte einer Procedure ein Array of Byte übergeben. In der Procedure wird die das Array Sortiert und soll der Aufrufenden Funktion zur weiteren verarbeitung zur ferfügung stehen. Macht man das so ?
Code:
procedure SortArray(var aArray : array of Byte);
begin
//Sortierung durchführen
end;

...

//Aufrufende Funktion
var tArray : array [0..3] of Byte;
    temp  : ^Word;


...
SortArray(tArray);
temp := @tArray;

....
Das funktioniert, aber ist das auch gut so ????

Gruß Jacki

alcaeus 12. Mai 2004 14:07

Re: Array als var Parameter
 
Also, die Arrayübergabe passt...aber ich werde nicht schlau aus dem Pointer temp, du definierst nämlich einen Pointer auf eine Variable vom Typ Word. IMHO dürfte das so nicht funktionieren,oder?

Jacki O 12. Mai 2004 14:17

Re: Array als var Parameter
 
Hallo,

das Array enthält zahlen die durch die in eine andere Bytereihenfolge gebracht werden sollen. Dannach soll der Inhalt des 'sortierten' Arrays einer Variablen vom Typ Word zugewiesen.

Gruß Jacki

Luckie 12. Mai 2004 14:24

Re: Array als var Parameter
 
Delphi-Quellcode:
type
  TMyByteArray = Array of Byte;

procedure Sort(ByteArray: TMyByteArray);
begin

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ByteArray: TMyByteArray;
begin
  Sort(ByteArray);
end;

Jacki O 12. Mai 2004 14:27

Re: Array als var Parameter
 
Hallo,

sehe ich das richtig, wenn ich das Array global als eigenn Typ deklariere, das ich dann var in der ParameterListe von Sort weglassen kann?

Luckie 12. Mai 2004 14:32

Re: Array als var Parameter
 
Ein Array ist automatisch von sich aus ein Zeiger auf eine Speicheradresse. Kuck mal, was das gelbe Hinweisfensterchen anzeigt, wenn du die öffnende Klammer beim Aufruf der Routine schreibst. var anzugeben wäre aber nicht falsch, dann sieht man, dass auch wieder was "rauskommt".

Jacki O 12. Mai 2004 14:35

Re: Array als var Parameter
 
Dann ist das doch das selbe, was ich geschrieben habe . Oder ?

maximov 12. Mai 2004 15:23

Re: Array als var Parameter
 
Zitat:

Zitat von Jacki O
Dann ist das doch das selbe, was ich geschrieben habe . Oder ?

Nein. Du hast dynamische und statische arrays kombiniert...frag mich nur warum du geschrieben hast, es würde funktionieren? Kann ja eigentlcih garnicht :gruebel:

Nicodius 12. Mai 2004 15:26

Re: Array als var Parameter
 
das geht sowieso nicht du MUSST es so wie Luckie machen ;)


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