![]() |
|
![]() ![]() ![]() |
|
Нитонисе |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
В моих программах есть группы компонентов, имеющих схожее поведение. Хотелось бы упростить программирование разработкой класса, где нужно описать поведение этой группы один раз и далее применять в других программах. Например, есть компонент TButton и TEdit. По нажатию на TButton должно появляться сообщение с содержимым TEdit. Создаю такой класс.
Теперь при создании формы я могу пару компонентов Button и Edit запихнуть в свой класс и хочу чтобы при нажатии на Button активизировалась функция OnClick моего класса. Важная особенность - помимо обработчика щелчка прописанного в моем классе я хочу иметь возможность прописать и какие-то дополнительные действия уже вне класса. То есть чтобы сначала сработал мой обработчик OnClick, а потом стандартный (или наоборот), где я бы мог добавить какие либо еще действия. Как это реализовать? |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
Примерно так
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Сделайте из этой парочки свой компонент и добавьте его в Builder
|
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
Гимору будет больше, для компонента имеют одинаковые обработчики события и др.
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 4 Всего: 72 |
Если кнопка располагается рядом с TEdit - создайте фрейм и вставляйте её в форму. Кодировния гораздо меньше, чем для создания своего компонента. Код получится похожий на код Dem_max, но наследование от TFrame и всё кроме обработчика нажатия, будет создано самим Билдером.
ЗЫ: класс фрейма обязательно переименуйте. По умолчанию будет TFrame2, а компонент на форме Frame21 (не 21-ый, а два-один). Это сообщение отредактировал(а) math64 - 20.3.2013, 10:18 |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 14 Всего: 39 |
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Нитонисе |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Здесь возникает ошибка, если обработчик OldBClick не существует. Приходится делать методы пустышки. Это довольно неудобно. Как можно решить этот вопрос? Получается что в классе нужно иметь возможность узнавать определен ли стандартный обработчик нажатия на кнопку. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
Нитонисе |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
del
Это сообщение отредактировал(а) Нитонисе - 28.3.2015, 21:22 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |