Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem beim Zuweisen der Größe von dyn. Array (https://www.delphipraxis.net/76364-problem-beim-zuweisen-der-groesse-von-dyn-array.html)

fwsp 3. Sep 2006 00:13


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:
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;

3_of_8 3. Sep 2006 00:16

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.

fwsp 3. Sep 2006 00:22

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.

3_of_8 3. Sep 2006 00:26

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.

fwsp 3. Sep 2006 00:29

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 04:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz