Поиск сообщества
Показаны результаты для тегов 'ShortCut'.
Найдено: 3 результата
-
Как убрать ShortCut в C++ Builder 10.4 Community Edition
Александр Алексеев опубликовал вопрос в Прочие вопросы
Не первый год пишу используя VCL, но вот попробовал написать приложение используя FireMonkey. Пишу небольшое приложение под Windows. Столкнулся с проблемой: задал в MainMenu Shortcut, а потом решил его убрать. ObjectInspector показывает, что он удалён (None), однако в приложении при компиляции и запуске он остался. Можно его изменить, но избавиться от него мне не удаётся. Перестройка проекта, перезапуск среды и перезагрузка системы не даёт результата. Можно конечно удалить этот пункт и заново создать, но как то это не то. Может кто сталкивался с этим багом и как его победить? -
Ахой, столкнулся с очередной проблемой Firemonkey, есть Frame, в нем ActionList, на Action есть Shortcut, но почему-то он никак не хочет отрабатывать. В ActionList главной формы Shortcut работают, а на фреймах — ни в какую. Кто сталкивался, как можно решить проблему?
- 6 ответов
-
- ActionList
- Frame
-
(и ещё 1 )
C тегом:
-
В модальном окне срабатывает Action по ShortCut- у другого окна Наткнулся на неожиданную проблему. В диалоговом окне по ShortCut срабатывает Action другой формы. Например, вызвал окно по ShowModal, случайно (или не очень) нажал Ctrl-O и на тебе - окно выбора файла из главного окна. Изучение метода TCommonCustomForm.KeyDown привело к такому коду ... // 5. perform key in all ActionLists in Childrens TraverseChildren(self); // 6. perform key in all main menus and ActionLists in other forms OtherForms(True); OtherForms(False); ... procedure OtherForms(IsMain: boolean); var I, J: integer; F: TCommonCustomForm; begin if Done then Exit; for I := 0 to Screen.FormCount - 1 do if (Screen.Forms[I] <> self) and (Screen.Forms[I].Visible) and (IsMain xor (Screen.Forms[I] <> Application.MainForm)) then begin F := Screen.Forms[I]; for J := F.ChildrenCount - 1 downto 0 do begin if F.Children[J] is TMainMenu then TMainMenu(F.Children[J]).DialogKey(Key, Shift); if Key = 0 then begin Done := True; Exit; end; end; TraverseChildren(F); if Done then Exit; end; end; т.е. если ShortCut в активном оокне не отработал ищется по всем другим формам. Не знаю, для чего это нужно, но в модальном окне такое поведение вызывает мягко говоря недоумение. Решить проблему напрямую простыми способами пока не получилось, пока пришлось дизайблить все ActionList-ы перед вызовом диалога. Может всетаки есть какой то нормальный споcоб обойти проблему? PS. В Berline похоже такаяже хрень.