Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Längenänderung eines als Parameter übergebenen dyn.Arrays


Gausi - Mo 19.01.04 19:28
Titel: Längenänderung eines als Parameter übergebenen dyn.Arrays
Ich habe ein Prozedur, der ich ein Array übergebe, welches im Laufe der Prozedur verändert wird, und dann ausserhalb der Prozedur die geänderten Werte enthält. Das nennt sich wohl Übergabe per Referenz oder so. Im Quelltext sieht das so aus:


Delphi-Quelltext
1:
procedure MeineTolleProzedur(Var MeinTollesDynamischesArray: Array of Integer);                    

Jetzt kann es sein, dass ich die Größe des Arrays verändern muss, da diese beim Aufruf der Prozedur nicht feststeht. Das geht normalerweise mit

Delphi-Quelltext
1:
setlength(MeinTollesDynamischesArray,10);  // oder halt nen anderen integer-wert                    

Aber der Aufruf erzeugt den CompilerFehler "Incompatible types". Wie geht das richtig? Ich steh da mal wieder aufm Schlauch...


Anonymous - Mo 19.01.04 19:48

So gehts:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
 TMeinTollesDynamischesArray = array of integer;

procedure MeineTolleProzedur(Var MeinTollesDynamischesArray: TMeinTollesDynamischesArray);
begin
 SetLength(MeinTollesDynamischesArray, 10);
end;


Gausi - Mo 19.01.04 20:47

Danke. Klappt.