Na początek: Używam C++ Builder 6,
Opcja 1
W jaki sposób mogę tworząc obiekt klasy utworzonej przeze mnie, jednocześnie tworzyć obiekt klasy odpowiedzialnej za tworzenie obrazku (bodajże TImage), ustawić dokładnie jego pozycję i obrazek?
Opcja 2
Mogę stworzyć obrazki już wcześniej, poustawiać je na miejsce i jako obrazek wstawić całe białe pole, ale potem wywołując konstruktor, zakładając że mam np. 20 obrazków które chcę zedytować wszystkie są ponazywane podobnie (card1, card2, ... , card20) w jaki sposób mogę się do nich odwołać?
Jednocześnie - to tylko w wątkach ale odradzam tych zabaw.
Wytłumacz czemu to ma być jednocześnie?
Można wyszukiwać wg nazwy, FindComponent("card1") ale to bez sensu.
Możesz w klasie stworzyć zwykła tablicę, vector
lub map
ę zaś w konstruktorze - wypełnić.
TImage *tb[20]; // w klasie
tb[0]=card1; // w konstruktorze
tb[1]=card2;
...
tb[19]=card20;
Można też tworzyć je dynamicznie:
tb[0]=new TImage(this);
tb[0]->BounsRect=TRect(Lf,Up,Rt,Bt);
tb[0]->Parent=this;
Przez jednocześnie chodziło mi o to, że tworząc obiekt klasy A, chciałbym aby jego odwzorowaniem był pojawiający się obiekt w postaci obrazka na ekranie. W klasie A byłyby zawarte dodatkowe informacje których nie mogę zawrzeć w obiekcie TImage. Może jest jakaś prostsza droga której nie widzę?
No to dodaj temu obiektowi pole TImage *img;
zainicjalizuj go w konstruktorze swego obiektu (potrzebujesz this
formatki przekazany do konstruktora).
Ma sens też dodać do img->Tag=reinterpret_cast<int>(this);
gdzie this
to właśnie ta klasa A.
Wtedy np po kliknięciu w obrazek łatwo można znaleźć odpowiadający mu obiekt A.
Dokładnie o to mi chodziło, aż wstyd że na to nie wpadłem. Dzięki!