Witam.
Mam taki problem, że piszę program bazę elementów elektronicznych.
Elementy te są pogrupowane według kategori, struktura kategorii to struktura folderów, tzn.
jest główna kategoria i podkategorie.
Każda kategoria może mieć w sobie elementy i podkategorie
Wymyśliłem coś takiego:
type
TElement=record //typ opisujący element
IsCategory:boolean; //Czy to jest Kategoria? Pozwala na odróżnienie czy wskaźnik Data
Category:pointer; //Wskaźnik do kategori, do której należy ten element,.
Index:integer; //Numer w kategori
Parent:pointer;
Name:String; //nazwa
Num:integer; //Ilosc
From:String; //Pochodzenie elementu
Used:boolean; //Czy element był używany
Descr:string; //Opis elemetu
Pict:string; //nazwa pliku ze zdjęciem
end;
type
TCategory = ^x; //sztuczka, żeby w TCategory można było się odwołać do TCategory
x=record///Rekord opisujący kategorie
IsCategory:boolean; {Czy to jest Kategoria? Pozwala na odróżnienie czy wskaźnik Data
aktualnie zaznaczonego elementu w TView wskazuje na element czy kategorię.Taki sama zmienna jest w TCategory}
Category:array of TCategory; //Wskaźnik do kategori, do której należy ten element,
Name:String; //Nazwa kategori
Elements:array of TElement; //Elementy w kategori, pierwszy ma numer 0
SubCategories:array of TCategory; //Odwołanie do TCategory, pierwsza ma numer 0
ElementsN:integer; //Ilość elementów,pierwszy ma numer 0
SubCategoriesN:integer; //Ilość podkategori
Index:integer; //Numer w kategori.
end;
Problem jest tutaj:
TCategory = ^x; //sztuczka, żeby w TCategory można było się odwołać do TCategory
Category:array of TCategory; //Wskaźnik do kategori, do której należy ten element,
Czy dało by się to rozwiązać w jakiś inny sposób, bo pomimo stosowania New, dzieją się różne rzeczy, jak w głównej kategorii, podczas tworzenia formy wpiszę: MainCategory.ElementsN:=-1,
to przy próbie następnego odwołania wychodzi np ElementsN=776576576.
Czy takie coś można by było lepiej wykonać w C++ i czy w ogóle C++ waszym zdaniem lepiej się do wszystkiego nadaje niż Delphi ?