Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Größe von dynamischem Array lässt sich nicht ändern.


Danny87 - Di 26.12.06 18:57
Titel: Größe von dynamischem Array lässt sich nicht ändern.
Hey Leute,

ich habe eine Prozedur der ich ein dynamisches Array als var-Parameter übergeben will.
Allerdings bekomme ich, wenn ich SetLength benutze die Meldung "Incompatible types".


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure GetNames(var saNames : array of string);
begin
{...}
for i:=0 to FResult.RowsCount -1 do
  begin
  SetLength(saNames,i+1); // Incompatible types
  {...}
  end;
{...}
end;


Wisst ihr woran das liegt? Wie kann ich das beheben?

Gruss
Daniel


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Di 26.12.2006 um 18:00


Christian S. - Di 26.12.06 18:59

Versuch es mal so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
  TStringArray = Array of String;


procedure GetNames(var saNames : TStringArray );
begin
{...}
for i:=0 to FResult.RowsCount -1 do
  begin
  SetLength(saNames,i+1); // Incompatible types
  {...}
  end;
{...}
end;


Ungetestet und ein Schuss ins Blaue ;-)


Danny87 - Di 26.12.06 19:03

Seltsam....aber so funktionierts tatsächlich :)
Warum bleibt mir ein Rätsel, aber hauptsache es geht :)

Danke :)