C++ Builder OnClick

0

Kiedy mam klasę A zawierającą tablicę obiektów klasy B zawierającej obiekt klasy C która zawiera obiekt klasy TImage, czy jest możliwość utworzenia metody OnClick dla TImage w klasie A tak, aby po kliknięciu w obrazek program był w stanie rozpoznać na który obrazek kliknięto? Jeżeli tak to jak się do niego odwołać w metodzie?

0

Przecież TImage jest w klasie C (tak napisałeś)?

0

No tak, ale teraz chciałbym zrobić OnClick dla obiektu klasy A, i załóżmy chciałbym aby kliknięty obiekt się schował, może odpowiedź jest oczywista aczkolwiek mam z tym problem.

Więc w klasie A jest tablica 25 elementowa obiektów klasy B czyli idąc dalej także 25 obiektów TImage.
W takim wypadku w konstruktorze domyślnym klasy A przypisuję w pętli for: b[i].c.img->OnClick = Funkcja;

Więc teraz załóżmy że jest wyświetlona tablica 5x5 obrazków, klikam na obrazek o współrzędnych (2,2) i chciałbym aby po kliknięciu stał się niewidoczny.
Tylko jak się do tego odwołać? W funkcji:
A::Funkcja{
b[?].c.img->Visible=0;
}
W miejscu pytajnika może być liczba całkowita od 0 do 24, i tu jest problem bo nie mam pojęcia jak się do tego odwołać żeby konkretnie ten obrazek na który kliknę np. na współrzędnych 2x2 stał się niewidoczny..

0

Kombinujesz, ale jak już chcesz:

 
void __fastcall TSDIAppForm::img1Click(TObject *Sender)
{
  if (Sender->ClassType() == __classid(TImage))
  {
     
  }
}

A pomiędzy kilkoma róznymi obiektami TImage możesz je rozróżniać poprzez pole Tag, ustawiając inną wartość dla każdego.
Czy to ładne rozwiązanie? - nie wiem, zależy co chcesz uzyskać, ogólnie bawienie się builderem już jest brzydkie :P

0

To w takim razie czym powinienem się bawić jeżeli nie builderem? Słyszałem że jako jedna z pierwszych zabawek się sprawdza. :)

0

Masz coś pokręcone totalnie, po kiego ci tyle klas?
Weź sobie ponumeruj ładnie obrazki, stwórz te 25 obrazków dynamicznie aby wstawić je do tablicy.
I po problemie, po kiego tyle klas?

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