Wskaźnik na funkcję, przekazywanie funkcji przez argument
Ostatnio zmodyfikowano 2012-01-03 17:23
DejaVu |
» 2012-01-03 17:00:11 Skoro chcesz coś takiego zrobić to znaczy, że masz złe podejście logiczne do problemu. Powinieneś wówczas zastosować klasy i dziedziczenie oraz metody wirtualne. Klasa bazowa powinna określać interfejs umożliwiający obsługę buttonów, natomiast klasy pochodne dać możliwość ich konfiguracji oraz implementować interfejs zapewniający obsługę klasy bazowej tak by funkcjonalność określona w klasie potomnej działała tak jak tego oczekujesz. |
|
wizardus Temat założony przez niniejszego użytkownika |
» 2012-01-03 17:05:32 @DejaVu
No to mniej więcej zrobiłem coś takiego, o ile dobrze rozumiem o czym mówisz. Zrobiłem jedną klasę bazową wykorzystującą metody wirtualne po której dziedziczą klasy potomne. Tylko, że z tego wynika, że dla każdego przycisku muszę tworzyć nową klasę potomną, tak ? |
|
pekfos |
» 2012-01-03 17:07:25 Tak. Funkcje też byś musiał tworzyć dla każdego przycisku :P |
|
DejaVu |
» 2012-01-03 17:08:10 Tylko, że z tego wynika, że dla każdego przycisku muszę tworzyć nową klasę potomną, tak ? |
Dla każdego przycisku, który ma mieć inne funkcjonalności niż obecnie istniejące klasy przycisków będziesz musiał stworzyć nową klasę (oczywiste), ale przecież z jednej klasy można stworzyć nawet milion przycisków o takiej samej funkcjonalności ale innej konfiguracji. |
|
wizardus Temat założony przez niniejszego użytkownika |
» 2012-01-03 17:12:05 @DejaVu
No to rozumiem, konstruktor wygląda praktycznie tak samo, większość metod też, tylko każdy przycisk ma swoją definicję metody OnClick. Hmmm... No i tak mam to zrobione na chwilę obecną. To jeszcze tylko muszę to jakoś zorganizować bo mam straszny bajzel w nagłówku.
@pefkos
W sumie masz rację :] ale mniej pisania troche i mniej klas. Jak mam 30 przycisków o różnych funkcjonalnościach to 30 różnych klas :) No ale nic to :)
Dzięki wielkie wszystkim. Zamykam. |
|
DejaVu |
» 2012-01-03 17:18:06 Pozwolę sobie jeszcze wtrącić: dla przypadku opisanego w ostatnim poście, biblioteka FastDelegate może być tym czego szukasz :) |
|
wizardus Temat założony przez niniejszego użytkownika |
» 2012-01-03 17:23:19 @DejaVu
Hmmm :) Na pewno spojrzę :) To może jeszcze zostawię wątek otwarty, może ktoś coś dopisze :)
Pozdrawiam :) |
|
1 « 2 » |