![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TListView и экшены
Eraser © (2009-03-25 15:05:00)Имеется форма. На форме TListVeiw и TActionList, в котором есть экшен, допустим actDelete (реализующий, к примеру, удаление элемента из ListVeiw). Если добавить к этому экшену shortcut (hotkey), допустим Del, то всплывает одна проблемка.
Нужно, чтобы если TListVeiw находится в режиме редктирования элемента (rename), при нажатии на Del - не вызывался экшен, а удалялся символ в названии элемента. Решение, казалось бы, простое - добавить обработчик OnShortcut к форме или Application и там гасить shortcut. Только беда в том, что обработчик не срабатывает, при нажатии горячей клавишы, если в ListVeiw выбран хотя бы один элемент.
Может кто подробно разбирался в том, как функционирует механизм перехвата/генерации shortcut'ов для экшенов в делфи, а точнее, какое сообщение нужно перехватывать?
Eraser (2009-03-25 16:13:00) [1]> [3] Сергей М. © (25.03.09 16:09)
ну это крайний вариант, так конечно все работает. видимо более красивых решений просто нет, так и сделаю.
Сергей М. (2009-03-25 16:09:00) [2]Ну так можно плюс к этому перед редактированием шоткат-свойство экшна запоминать+очищать, а после редактирования восстанавливать ..
Eraser (2009-03-25 15:42:00) [3]> [1] Сергей М. © (25.03.09 15:20)
попробовал так делать - экшен срабатывать перестал, но и Del съедается. Т.е. ничего не происходит.
PS
вместо del может быть любой шорткат - проверял.
Сергей М. (2009-03-25 15:20:00) [4]
> если TListVeiw находится в режиме редктирования элемента
> (rename), при нажатии на Del - не вызывался экшен
Не проще ли дизейблить экшн в обработчике OnEditing и , соотв-но, энейблить его взад при OnEdited ?