Grid "съедает" ShortCut-ы Action-ов. Но не все.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Grid "съедает" ShortCut-ы Action-ов. Но не все.

Сообщение tria » 01.06.2006 12:42:06

Имеем на форме: Грид (у меня свой, производный от TDrawGrid, однако с StrinGrid проблема та же), ActionList, Action где ShortCut=F2.
Если фокус ввода на гриде, нажатие F2 не вызывает отработку экшина. Если фокус где-нить в другом месте, то все нормально. То же самое с Ctrl+Up, Enter, Shift+Enter. А F1, например, отрабатывает.

Как достали блин эти глюки...
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение tria » 01.06.2006 12:57:28

И подскажите плиз.
В Лазарусе нажатие клавиши отрабатывается сначала компонентом, потом переходит к Экшину?
В Делфях по-моему было наооборот.
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10

Сообщение tria » 01.06.2006 15:28:19

Проблема на поверхности. Смотрим процедурину:
TCustomGrid.KeyDown()

Кусочек кода:

VK_F2: //, VK_RETURN:
begin
EditorShow(False);
// if Key=VK_RETURN then EditorSelectAll;
Key:=0;
end;

Сразу вопросы: если нет опции goEdit то нафига вызывать EditorShow а затем обнулять Key?
Второй вопрос. Если как я писал, Экшины срабатвают после отработки клавиш у текущего компонента формы, то может вообще не стоит обнулять клавишу?
Или надо как-то научить экшины отрабатвать нажатия клавишь до отработки этого компонентами?
tria
постоялец
 
Сообщения: 401
Зарегистрирован: 03.04.2006 11:24:10


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

Рейтинг@Mail.ru