Форум: "Основная";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
ВнизTListView и экшены Найти похожие ветки
← →
Eraser © (2009-03-25 15:05) [0]Имеется форма. На форме TListVeiw и TActionList, в котором есть экшен, допустим actDelete (реализующий, к примеру, удаление элемента из ListVeiw). Если добавить к этому экшену shortcut (hotkey), допустим Del, то всплывает одна проблемка.
Нужно, чтобы если TListVeiw находится в режиме редктирования элемента (rename), при нажатии на Del - не вызывался экшен, а удалялся символ в названии элемента. Решение, казалось бы, простое - добавить обработчик OnShortcut к форме или Application и там гасить shortcut. Только беда в том, что обработчик не срабатывает, при нажатии горячей клавишы, если в ListVeiw выбран хотя бы один элемент.
Может кто подробно разбирался в том, как функционирует механизм перехвата/генерации shortcut"ов для экшенов в делфи, а точнее, какое сообщение нужно перехватывать?
← →
Сергей М. © (2009-03-25 15:20) [1]
> если TListVeiw находится в режиме редктирования элемента
> (rename), при нажатии на Del - не вызывался экшен
Не проще ли дизейблить экшн в обработчике OnEditing и , соотв-но, энейблить его взад при OnEdited ?
← →
Eraser © (2009-03-25 15:42) [2]> [1] Сергей М. © (25.03.09 15:20)
попробовал так делать - экшен срабатывать перестал, но и Del съедается. Т.е. ничего не происходит.
PS
вместо del может быть любой шорткат - проверял.
← →
Сергей М. © (2009-03-25 16:09) [3]Ну так можно плюс к этому перед редактированием шоткат-свойство экшна запоминать+очищать, а после редактирования восстанавливать ..
← →
Eraser © (2009-03-25 16:13) [4]> [3] Сергей М. © (25.03.09 16:09)
ну это крайний вариант, так конечно все работает. видимо более красивых решений просто нет, так и сделаю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2010.02.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c