Re[2]: Идея механизма событий библеотеки виджетов GUI
От: Inq  
Дата: 09.03.09 12:40
Оценка: 2 (1)
Здравствуйте, Кывт, Вы писали:

К>1. В такой реализации, которую ты привел, она вообще бесполезна, так как обработчик события — один на весь класс и не имеет доступа к экземпляру класса. Если расширить ее до того, чтобы она поддерживала экземпляры классов, то идея должна как-то измениться. Как ты собираешься передавать экземпляры? Мне ведь нужно подписать конкретный обработчик на событие конкретной кнопки, а не всех кнопок в программе.


К>Приведи пример, как с помощью твоей идеи (уже в расширенном виде) я могу решить следующую задачу:


К>
К>class Button : public Widget
К>{
К>public:

К>    Event<ClickedEvent> Clicked;  
К>};

К>class MyForm : public Form
К>{
К>public:

К>    MyForm()
К>    {
К>        button1.Clicked += ClickedEventHandler(*this, &MyForm::OnButton1Clicked);
К>        button2.Clicked += ClickedEventHandler(*this, &MyForm::OnButton2Clicked);
К>    }

К>private:

К>    Button button1;
К>    Button button2;

К>private:

К>    void OnButton1Clicked(Point location)
К>    {
К>        // Has to be called when button1 is clicked.
К>    }

К>    void OnButton2Clicked(Point location)
К>    {
К>        // Has to be called when button2 is clicked.
К>    }
К>};
К>


Вот переделанная реализация. Задача решена как-никак.

Над остальными пунктами пока думаю. Спасибо за подробный ответ.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.