Autor Beitrag
Daimonion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55



BeitragVerfasst: Do 27.09.07 11:19 
Hallo

Ich habe eine Prozedur, die ein dynamisches Array, per Referenz bekommt.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TSprache.available(var AoS : Array of TSprachen);
begin
     SetLength(AoS, 100);
end;


Innerhalb dieser Prozedur möchte ich die Länge des Array anpassen, aber leider motzt SetLength rum, das es inkompatible Typen bekommt. Es ist mir klar das AoS eine Referenz ist, aber wie kann ich denn SetLength schreiben, damit dieses mir mein Array, vergrößern kann?


Danke für eure Tipps.

Grüße
Daimonion

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.

_________________
Zitat Stromberg S03E08 - Erika:
"So...selbst die Capitolmatratze, die hier auf jedem Karosseplan umgerutscht ist, was will sie von mir? Zahlen. Aber so ist das. Als Chef in meiner Position, da bist du so einsam wie...Gott."
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Do 27.09.07 11:50 
Du musst den dynamischen Array-Typ vorher explizit deklarieren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
  TSprachenDynArray = array of TSprachen;

procedure TSprache.available(var AoS : TSprachenDynArray);  
begin  
  SetLength(AoS, 100);  
end;


Wenn du array of TIrgendwas in eine Parameterdeklaration schreibst, ist der Parameter nicht als dynamisches Array sondern als offener Array-Parameter deklariert, d.h. als ein Parameter, dem man ein beliebiges Array des entsprechenden Typs übergeben kann. Da das auch ein statisches Array sein könnte, funktioniert SetLength darauf nicht.

Stefan

_________________
Ein Computer ohne Windows ist wie eine Schokoladentorte ohne Senf.
Daimonion Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 55



BeitragVerfasst: Do 27.09.07 16:00 
Danke das wußte ich nicht. Jetzt gehts.

Grüße
Daimonion

_________________
Zitat Stromberg S03E08 - Erika:
"So...selbst die Capitolmatratze, die hier auf jedem Karosseplan umgerutscht ist, was will sie von mir? Zahlen. Aber so ist das. Als Chef in meiner Position, da bist du so einsam wie...Gott."