![]() |
Problem beim Zuweisen der Größe von dyn. Array
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:
Delphi-Quellcode:
Hier die ganze Prozedur:
SetLength(MyProgs, SizeOf(HlpArray));
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; |
Re: Problem beim Zuweisen der Größe von dyn. Array
Bist du dir sicher, dass du im Parameter array of TProgs und nicht TProgs meinst? Denn eigentlich müsste der Compiler schon da meckern. Nebenbei meinst du nicht sizeof(HlpArray) sondern length(HlpArray). sizeof(Array) geht nicht.
|
Re: Problem beim Zuweisen der Größe von dyn. Array
ja, ich mein array of TProgs.
und der Compiler kommt nicht an Größenzuweisung, er bleibt schon bei SetLength(MyProgs stehen. |
Re: Problem beim Zuweisen der Größe von dyn. Array
Ich würds trotzdem mal ändern.
Nebenbei: Deklariere dir einen Typ TProgsArray = array of TProgs; und ersetze dadurch das array of TProgs. Dann gehts. |
Re: Problem beim Zuweisen der Größe von dyn. Array
das hab ich gemacht, jetzt schmeißt das Programmmit AVs.
Vielleicht sollte ich für heute erstmal Schluss machen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz