Einzelnen Beitrag anzeigen

fwsp
(Gast)

n/a Beiträge
 
#1

Problem beim Zuweisen der Größe von dyn. Array

  Alt 3. Sep 2006, 00:13
hallo,

ich hab hier nen (nicht optimierten) code, der ein array kriegt das ordnen soll und zum schluss es zurückgeben soll.
Aber ich hab unkompatible Typen, aber warum?

Hier meckert der Compiler:
SetLength(MyProgs, SizeOf(HlpArray)); Hier die ganze Prozedur:
Delphi-Quellcode:
procedure ArrangeList(var MyProgs: array of TProgs);
var
  i, j: Integer;
  StrList: TStringList;
  HlpArray: array of TProgs;
  MyBreak: Boolean;
begin
  StrList := TStringList.Create;
  for i := Low(MyProgs) to High(MyProgs) do
  begin
    if (MyProgs[i].Name <> '') then
      StrList.Add(MyProgs[i].Name);
  end;

  StrList.Sorted := True;

  SetLength(HlpArray, StrList.Count);
  for i := Low(HlpArray) to High(HlpArray) do
  begin
    HlpArray[i].Name := StrList.Strings[i];
  end;
  StrList.Free;

  MyBreak := False;
  for i := Low(HlpArray) to High(HlpArray) do
  begin
    for j := Low(MyProgs) to High(MyProgs) do
    begin
      if (HlpArray[i].Name = MyProgs[j].Name) then
      begin
        HlpArray[i].Path := MyProgs[j].Path;
        MyBreak := True;
      end;
    end;
  end;

  SetLength(MyProgs, SizeOf(HlpArray)); // [Fehler] UStdFunc.pas(66): Inkompatible Typen
  for i := Low(MyProgs) to High(MyProgs) do
  begin
    MyProgs[i].Name := HlpArray[i].Name;
    MyProgs[i].Path := HlpArray[i].Name;
  end;

  SetLength(HlpArray, 0);
end;
  Mit Zitat antworten Zitat