Tablica w klasie

0

Witam

Mam klasę z tablicami:

 
TPlanowanieProdukcji=class
public
NrZamowienia:Integer;
JednMiary:String;
IloscWlasciwaDoProd: array of Currency;
IloscResztaDoProd: array of Currency;
CzasProdukcjiIloscWlasciwa: array of Currency; //h
CzasIloscReszta: array of Currency; //h
end;

Jak dynamicznie tworzyć kolejny element tablicy zawartej w klasie ?
Bo...... tak jak to robię wywala błąd użycia funkcji High();

 
SetLength(Zamowienie,High(Zamowienie)+2);
Zamowienie[I]:=TPlanowanieProdukcji.Create;
//..................................................................
 SetLength(Zamowienie[I].JednMiary,High(Zamowienie[I].JednMiary)+2);  //<<-- tutaj problem uzycia funkcji High

Help Adam

0

Help Adam
:D

Bo...... tak jak to robię wywala błąd użycia funkcji High();

Jaki błąd?

Nie robimy SetLength(Zamowienie,High(Zamowienie)+2); - tylko Setlength(Zamowienie,LENGTH(Zamowienie)+1);.
High(Zamowienie[I].JednMiary)+2 No przecież JednMiary to string? I high nie ma sensu w jego przypadku? (przynajmniej w przypadku shortstring)

Całkowicie niepotrzebnie używasz klas, skoro tutaj nadadzą się rekordy (bo nie masz żadnych metod).

SetLength(Zamowienie,High(Zamowienie)+2);
Zamowienie[I]:=TPlanowanieProdukcji.Create;

Przecież I jest niezaincjalizowane, powinno być i:=high(Zamowienie);

0

Jest zainicjalizowane przed pętlą......... to nie ten problem :(

0

Wielkie SORRY.............
Macie wszyscy rację a ja miałem dobrze w realizacji bo

JednMiary:String; miało być jako JednMiary: array of String;

.......... i stąd się wziął problem

Pozdrawiam
Adam

1 użytkowników online, w tym zalogowanych: 0, gości: 1