• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak w c++ builder w kodzie jednego obiektu zmienić funkcję onclick innego obiektu?

0 głosów
79 wizyt
pytanie zadane 25 kwietnia 2016 w C i C++ przez rafiti12 Początkujący (250 p.)
Załóżmy, że mam 3 obiekty (a1,a2,a3). Chciałbym żeby wyglądało to mniej więcej tak: naciśnięcie obiektu a1 sprawia, że naciśnięcie obiektu a3 zmienia kolor tła na żółty, a naciśnięcie obiektu a2 sprawia, że naciśnięcie obiektu a3 zmienia kolor tła na zielony. Jeśli da się coś takiego napisać to bardzo prosiłbym o wzór jak ma wyglądać kod obiektu a1 z drobnym wytłumaczeniem :D

1 odpowiedź

+1 głos
odpowiedź 26 kwietnia 2016 przez Tomekku Bywalec (2,840 p.)
Mam taki pomysł, że możesz zrobić osobną funkcję zmieniającą tło na żłóte i osobną na zmieniającą na zielony i do obiektu a1 dodać znienną logiczną (bool) ustawiającą się na prawdę, gdy klikniesz a1, a w obiekcie a2 zrobić prostego if'a sprawdzającego, czy jest kliknięty (prawda), czy nie (fałsz) i odpowiednio wywołuje funkcje zmieniającą na żółto lub na zielono :D
komentarz 26 kwietnia 2016 przez rafiti12 Początkujący (250 p.)
Myślałem nad czym podobnym, problem w tym, że przy większej ilości obiektów zrobi się mnóstwo if-ów w ostatnim, a to nie wygląda ładnie i instynktownie podpowiada mi, że jest "ładniejszy" sposób :P Nie ma?
komentarz 26 kwietnia 2016 przez Tomekku Bywalec (2,840 p.)
a może coś takiego, że załóżmy, że obiekty a1 i a2 to są obiekty "opcyjne", a obiekt a3 jest takim jakby "submitem". obiekty a1 i a2 dodajesz do kontenera obiektów "opcyjnych" i każdy taki obiekt ma zmienną np. bool clicked; która zmienia swoje wartości podczas klikania na nie i metodę, która przechowuje to, co powinna zrobić po kliknięciu np.: void zmienTlo(). Za to w a3 (tym "submicie") jest metoda, która przeszukuje cały kontener obiektów "opcyjnych" i sprawdza w którym jest True i wartość wywołuje na tym obiekcie metodę zmienTlo().

 

Mam nadzieję, że łapiesz o co mi chodzi :D
komentarz 27 kwietnia 2016 przez rafiti12 Początkujący (250 p.)
Chyba ogarniam tylko czy jak oba obiekty będą kliknięte to a3 ogarnie, że chodzi o ten kliknięty jako ostatni?
komentarz 27 kwietnia 2016 przez Tomekku Bywalec (2,840 p.)
Generalnie też powinieneś zrobić tak, że jak naciśniesz któryś z opcyjnych to ten kliknięty ustawiasz na True, a resztę na False

Podobne pytania

0 głosów
1 odpowiedź 71 wizyt
0 głosów
2 odpowiedzi 75 wizyt
0 głosów
1 odpowiedź 249 wizyt
pytanie zadane 5 września 2015 w C i C++ przez Qlass Użytkownik (510 p.)
...