Не надо ничего переустанавливать, проблема не там, где ты думаешь... Почитай статью: DRKB -> Системные функции и WinAPI -> Windows -> Буфер обмена -> Буфер обмена и строки (текст) -> Поместить/получить строку из буфера обмена (Заплатка к стандартным)
По-моему, как раз твой случай. Попробуй сначала повесить копирование в Clipboard на нажатие кнопки, и проверить, правильно ли работает. Если правильно - будешь добавлять HotKey, и по нажатию Ctrl+C делать то же самое...
да, мой. (только я не понял почему:) ) это от версии винды зависит?
Цитата
Попробуй сначала повесить копирование в Clipboard на нажатие кнопки, и проверить, правильно ли работает. Если правильно - будешь добавлять HotKey, и по нажатию Ctrl+C делать то же самое...
Volvo, вот сделал заплатку для буфера, сделал горячую клавишу ctrl+c, а сделать еще горячие клавиши ctrl+x,ctrl+a не получается. Koder.rar ( 629.68 килобайт )
Кол-во скачиваний: 357 Помоги пожалуйста.
Добавлено через 5 мин. И еще вопросик: как сделать эту же заплатку, когда нажимаешь на мемо правой кнопкой мыши и выбираешь копировать или вырезать? Создать собственное контекстное меню или есть вариант полегче?
сделал горячую клавишу ctrl+c, а сделать еще горячие клавиши ctrl+x,ctrl+a не получается.
Еще бы... Ты не то сделал, второй параметр RegisterHotKey - это не сама кнопка, а индекс операции. Смотри: 1) описываешь собственно идентификаторы горячих клавиш, и сами кнопки:
, а потом регистрируешь их (а в процедуре WMHotKey - проверяешь, какой хоткей пришел, и указываешь, что надо сделать):
procedure TForm1.WMHotKey(var Msg: TWMHotKey); begin case Msg.HotKey of HK_COPY: PutStringIntoClipBoard(form1.MemoTo.Text); HK_SELECTALL: Form1.MemoTo.SelectAll; HK_CUT: ; // тут добавишь, чего тебе надо. Копирование в буфер и очистка Memo end; end;
Если надо и контекстное меню, то те же операции повесишь на PopupMenu, тогда проще будет не выполнять действия сразу в обработчике WMHotKey, а вызывать процедуры меню...
Сразу предупреждаю твой вопрос: "почему по нажатию Ctrl+A текст в Мемо не выделяется?" Он выделяется, только ты этого не видишь, потому что MemoTo у тебя неактивный, а по умолчанию на неактивном Мемо выделение не отображается. Перекинь HideSelection в False, тогда выделение будет отображаться в любом случае.
Если надо и контекстное меню, то те же операции повесишь на PopupMenu, тогда проще будет не выполнять действия сразу в обработчике WMHotKey, а вызывать процедуры меню...
Да, создать свой PopupMenu... Кстати, если тебе надо, чтобы горячие клавиши работали только когда твоя программа активна (а не свернута и не в фоне) - проще будет добавить на форму TActionList и добавить в него три TAction (не стандартные, а именно простые, нажатием Ins а не Ctrl+Ins!!!). На каждый из них навесить по HotKey-ю, и в обработчике OnExecute написать нужные действия.
Тогда при создании PopupMenu достаточно просто выбрать Action, дальше Дельфи все сделает сама.