Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.14;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
11-1211396216
Vinum
2008-05-21 22:56
2010.02.14
Форма на вообще весь экран


15-1260309385
GanibalLector
2009-12-09 00:56
2010.02.14
PortMon


15-1259954884
oxffff
2009-12-04 22:28
2010.02.14
Спасибо.


15-1260088479
Clone
2009-12-06 11:34
2010.02.14
хп на ноут


15-1260134838
Германн
2009-12-07 00:27
2010.02.14
Что в Си означает cout<<" n"?