2014-02-20 4 views
1

Как описано here, элементы управления RichEdit имеют множество встроенных ярлыков для различных функций.Как удалить ярлыки RichEdit?

У меня есть TRichEdit элементы управления в приложении Delphi 7, где я хотел бы удалить некоторые (но, вероятно, не все) эти ярлыки. Нет такого метода, описанного в msdn.

В настоящее время я просто с помощью OnKeyDown и OnKeyUp обработчиков событий для этой цели, но это не очень элегантное решения, так как я должен добавить код для каждого TRichEdit управления, и часто я добавляю OnKeyDown и OnKeyUp обработчиков событий только для этого.

Я хотел бы реализовать более элегантное решение, которое имеет дело с этими ярлыками по всему миру, например, с использованием класса перехватчика, но я не знаю, как перехватывать и удалять эти ярлыки. Есть идеи?

ответ

1

Вы можете добавить собственные обработчики ярлыков, которые ничего не делают. Добавьте список действий и добавьте действие. Используйте объекты действия ShortCut и SecondaryShortCuts, чтобы захватить ярлыки, на которые вы нацеливаетесь. Добавьте в обработчик OnExecute действие, которое ничего не делает, или, возможно, звуковой сигнал, указывающий на короткое сокращение без обработки.

Я не знаю точно, что это будет работать, никогда не пробовал, но я считаю, что это должно произойти.

+0

Кажется, что это работает, хотя мне очень не нравится этот подход. Какой ярлык вы могли бы написать для обработки сочетаний CTRL + LeftSHIFT и CTRL + RightSHIFT? – jedivader

+0

Не понимаю. Это не ярлыки. –

+1

Они находятся в элементе управления RichEdit, см. [This] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb787873%28v=vs.85%29.aspx#rich_edit_shortcut_keys). Они меняют выравнивание в режиме RTL BiDi. Это довольно ужасно, если вы спросите меня, например, CTRL + SHIFT можно использовать для изменения языка ввода. – jedivader

Смежные вопросы