klasa w C++ Builder

klasa w C++ Builder
D9
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
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!

Kopiuj
class Images
{
TImage *images;
public:
Images()
{
images=new TImage(Form1)
images->Parent=Form1;
images->Name="z1aa";
images->Picture->LoadFromFile("images/p1a");
}
};
MI
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 9 lat
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.

D9
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
0

Czyli tak miałoby to wyglądać?

Kopiuj
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();
};
edytowany 1x, ostatnio: defto94
Rekman
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 10 lat
  • Postów:148
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ę.

D9
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:12
0

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

Rekman
  • Rejestracja:prawie 13 lat
  • Ostatnio:prawie 10 lat
  • Postów:148
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ść.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.