1816 / 1030 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
1 | |
Delphi 10. Назначение обработчика события компонента в инспекторе объекта из подключенного юнита11.06.2019, 09:12. Показов 2257. Ответов 7
Метки нет (Все метки)
Добрый день Уважаемые форумчане.
Прошу помощи для лучшего понимания процесса. Решаю простую задачку удобного назначения обработчика событию TitleClick DBGrid. Для удобства использования в нескольких формах создал отдельный unit (см. код). Так как "стандартный" обработчик события является методом объекта, то нужно создать этот метод. Один из вариантов без создания конкретных объектов-форм был подсмотрен в литературе. Недостатком такого способа является то, что для назначения конкретному DBGrid обработчика события приходится задавать его программно, например в CreateForm (DBGrid.onTitleClick:= TTitleClickDBGrid.TitleClickSort;). Вопрос в том, как можно "элегантно" сделать данное объявление метода чтобы его можно было назначить обработчику события прямо из инспектора объектов Delphi (10.2). Код
... interface type TTitleClickDBGrid = class class procedure TitleClickSort(Column: TColumn); end; implementation class procedure TTitleClickDBGrid.TitleClickSort(Column: TColumn); begin //123 end; end.
0
|
11.06.2019, 09:12 | |
Ответы с готовыми решениями:
7
Удаление обработчика события для компонента Создание объекта-события и обработчика события Как изменить способ задания свойств в Инспекторе для собственного компонента? Назначение обработчика |
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
|
11.06.2019, 15:56 | 2 |
0
|
1816 / 1030 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
11.06.2019, 16:30 [ТС] | 3 |
Пока только один обработчик TitleClick для рвзличных dbgrid.
Интересной перспективой конечно является создание нескольких обработчиков, думаю не более 3-5 событий.
0
|
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
|
||||||
11.06.2019, 16:37 | 4 | |||||
Если только один, то можно просто переопределить метод TitleClick:
1
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,253
|
||||||
12.06.2019, 02:38 | 5 | |||||
Мне лично по душе и по естеству процедура
0
|
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,377
|
|
12.06.2019, 12:12 | 6 |
Но такая процедура не несет информации о том куда кликнули и какой кнопкой мыши, а это ведь нужный функционал.
0
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,253
|
|
14.06.2019, 02:40 | 7 |
0
|
8 / 8 / 1
Регистрация: 06.09.2014
Сообщений: 52
|
||||||
27.07.2019, 22:51 | 8 | |||||
1) Вы можете в классе рядом с обработчиком по-умолчанию (создайте его, посмотрите где он появился - published секция) написать свои с такой же сигнатурой и, конечно, имплементировать их. Тогда они будут показываться в Object Inspector-e в ниспадающем списке.
2) Есть более гибкий (и более коварный) вариант - rtti - при этом не обязательно иметь обработчик по-умолчанию:
1
|
27.07.2019, 22:51 | |
27.07.2019, 22:51 | |
Помогаю со студенческими работами здесь
8
Назначение обработчика Как отловить обработчик события кнопки в инспекторе кода браузера? Назначение обработчика клика Назначение обработчика событию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |