Имеем на форме: Грид (у меня свой, производный от TDrawGrid, однако с StrinGrid проблема та же), ActionList, Action где ShortCut=F2.
Если фокус ввода на гриде, нажатие F2 не вызывает отработку экшина. Если фокус где-нить в другом месте, то все нормально. То же самое с Ctrl+Up, Enter, Shift+Enter. А F1, например, отрабатывает.
Как достали блин эти глюки...
Grid "съедает" ShortCut-ы Action-ов. Но не все.
Модератор: Модераторы
Проблема на поверхности. Смотрим процедурину:
TCustomGrid.KeyDown()
Кусочек кода:
VK_F2: //, VK_RETURN:
begin
EditorShow(False);
// if Key=VK_RETURN then EditorSelectAll;
Key:=0;
end;
Сразу вопросы: если нет опции goEdit то нафига вызывать EditorShow а затем обнулять Key?
Второй вопрос. Если как я писал, Экшины срабатвают после отработки клавиш у текущего компонента формы, то может вообще не стоит обнулять клавишу?
Или надо как-то научить экшины отрабатвать нажатия клавишь до отработки этого компонентами?
TCustomGrid.KeyDown()
Кусочек кода:
VK_F2: //, VK_RETURN:
begin
EditorShow(False);
// if Key=VK_RETURN then EditorSelectAll;
Key:=0;
end;
Сразу вопросы: если нет опции goEdit то нафига вызывать EditorShow а затем обнулять Key?
Второй вопрос. Если как я писал, Экшины срабатвают после отработки клавиш у текущего компонента формы, то может вообще не стоит обнулять клавишу?
Или надо как-то научить экшины отрабатвать нажатия клавишь до отработки этого компонентами?
