AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem beim Zuweisen der Größe von dyn. Array

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

Ein Thema von fwsp · begonnen am 3. Sep 2006 · letzter Beitrag vom 3. Sep 2006
Antwort Antwort
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
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

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

  Alt 3. Sep 2006, 00:16
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#3

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

  Alt 3. Sep 2006, 00:22
ja, ich mein array of TProgs.
und der Compiler kommt nicht an Größenzuweisung, er bleibt schon bei SetLength(MyProgs stehen.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

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

  Alt 3. Sep 2006, 00:26
Ich würds trotzdem mal ändern.

Nebenbei: Deklariere dir einen Typ TProgsArray = array of TProgs; und ersetze dadurch das array of TProgs. Dann gehts.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#5

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

  Alt 3. Sep 2006, 00:29
das hab ich gemacht, jetzt schmeißt das Programmmit AVs.
Vielleicht sollte ich für heute erstmal Schluss machen...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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