Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

А где ActionList?

8.0K
17 июля 2007 года
makem
13 / / 05.03.2005
Доброго дня!

Вопросик, конечно, на знание темы. Если кто знает, есть в Borland Delphi и C++ Builder такая штука - TActionList - контейнер времени проектирования (и выполнения тоже :) ) для объектов TAction, инкапсулирующих понятие команды. С их помощью настройка однотипных действий для менюшек, кнопулек и проч. - на раз... Вещь удобнейшая, но вот в Windows Forms такой фичи не нашел. Что для меня - так разочарование полнейшее... Может кто спасет мои ожидания, да скажет что я не там искал???? Или чем заменить енто можно...
Спасибо.
23K
17 июля 2007 года
Ламерко
34 / / 03.07.2007
Очень просто.
в Windows Forms обекты используют функции событий.
Если Событие обектов одинаковые то можно использовать одинаковые вункции.
Пример.

Код:
Button m_Button1 = new Button();
/*
* Это событие требует от функции вхождение таких элементов как (object sender, EventArgs e)
* sender - объект вызываемый функцию
* e - Аргументы события
*/
m_Button1.Click += new EventHandler(m_Button_Click);
//Соответственно вункция будет иметь такой вид
void m_Button_Click(object sender, EventArgs e)
{
 /* .... */          
}
// ТЕперь можно использовать функцию для других элементов
Button m_Button2 = new Button();
/* Пишем ссылку на функцию */
m_Button2.Click += new EventHandler(m_Button_Click);


А для прощего просмотра, в ВижуалСтудии есть закладка с событиями.
Если 2 раза кликнуть на нужном событии то создастся новай функция, или же можно выбрать из списка если подобные функции уже создавались.
8.0K
17 июля 2007 года
makem
13 / / 05.03.2005
Та не... я не про то. В типе Action указывается имя команды, подсказки, картинка, задается свойство доступности и т.д.. Так вот, если "подвязать" Action к пункту менюшки, кнопке и т.д., т.е. к любому компоненту, имеющему св-во Action, то при все эти элементы автоматически наследуют свойства и поведение данной команды. И для того чтобы заблокировать действие то достаточно выставить св-во Enabled только в команде, а все связанные виджеты автоматически его подхватят. И это куда удобнее, чем самому лазать по всем виджетам и не забыть бы кого...
Нвот вроде так..
23K
17 июля 2007 года
Ламерко
34 / / 03.07.2007
Ну тогда развечто написать самому или же найти плгин для студии (если есть) :)
8.0K
17 июля 2007 года
makem
13 / / 05.03.2005
Если писать самому - нужно научиться перехватывать все сообщения клавы и мыши самой формы, чтобы проверять допустимость команд. Про keypreview я знаю, а вот мышка - как отследить события "OnClick" для всех дочерних компонентов формы? Не писать же для каждого, глупо получится как-то....
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог