klasa w C++ Builder

0

Mam dwa pytania do poniższej klasy utworzonej w C++ Builder. Moim celem jest przetrzymywanie zdjęć w klasie. Czy ta klasa jest prawidłowo napisana dla obrazków o rozszerzeniu bmp? Jak się odwołać do obiektu takiej klasy? Bardzo proszę o pomoc!

class Images
{
TImage *images;
public:
Images()
{
images=new TImage(Form1)
images->Parent=Form1;
images->Name="z1aa";
images->Picture->LoadFromFile("images/p1a");
}
};
1

Nie, Skąd klasa ma wiedzieć co to jest Form1? TImage *images; definiuje wskaźnij na jeden obiekt. Rozumiem ze każdy obiekt tej klasy ma mieć taki sam obrazek tak? (bo wczytujesz go w konstruktorze i nie jest on zmienialny? TImage to jest komponent wizualny. Zrób sobie listę obiektów typu Bitmap, zaalokuj są, potem tworzysz bitmapy dynamicznie przekazując w metodzie adres obrazka. Nie zapomnij o destuktorze i posprzątaniu po sobie.

0

Czyli tak miałoby to wyglądać?

class Images
{
Graphics::TBitmap *z1;
Graphics::TBitmap *p1a;
Graphics::TBitmap *p;
public:
Images()
{
z1=new Graphics::TBitmap();
p1a=new Graphics::TBitmap();
p=new Graphics::TBitmap();

}
~Images()
{
  z1->Free();
  p1a->Free();
  p->Free();
};
1

Czyli tak miałoby to wyglądać?

Oczywiście nie.
Najpierw utwórz klasę przechowującą jedno zdjęcie (wbrew pozorom to nie jest bezsensowne). Następnie klasę gromadzącą obiekty tej klasy. Tak jak napisał misiakufal. Jednak TImage - w przeciwieństwie do TBitmab jest wizualny, a to może się przydać planując ich prezentację.

0

W jaki sposób utworzyć klasę gromadzącą obiekty klasy?

0

Umieść w sekcji prywatnej kontener przechowujący obiekty twojej klasy.
Stwórz interfejs udostępniający te obiekty (minimum) i ewentualnie rozszerz go o potrzebną według Ciebie funkcjonalność.

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