| 
| 
 | Вопрос # 43/ вопрос открыт / | 
 |  Здравствуйте!Вот и снова я...
 У меня возник ещё один вопрос... весь инет перерыл - нигде ничего нет по этому вопросу!
 Вопрос: как перехватить клавишу Del в RichEdit, Memo и Edit, чтобы при нажатии на данную клавишу последующий символ стирался, как во всех текстовых редакторах... а то без каких-либо действий ничего не происходит... ответьте, если не трудно! Заранее спасибо...
 
|  |   Вопрос задал: feenords (статус: 1-ый класс)Вопрос отправлен: 18 июня 2006, 00:22
 Состояние вопроса: открыт, ответов: 3.
 |  Ответ #1. Отвечает эксперт: bruder Здравствуй, feenords.Странно, но в RichEdit, Memo, Edit, у меня последующий символ стирается...
 Чтобы перехватить нажатие <Delete>, нужно обрабатывать событие OnKeyDown у компонента.
 if Key=Ord(VK_DELETE) then
 
|  | Ответ отправил: bruder (статус: 4-ый класс)Время отправки: 18 июня 2006, 11:12
 Оценка за ответ: 4
 |  Ответ #2. Отвечает эксперт: min@y™ Прочитав вопрос, сделал глаза по 5 рублей :)).Запустил Delphi, создал проект, положил на форму Edit, Memo и RichEdit. Запускаю - такст нормально стирается клавишей Del. Прикрепляю этот пример к вопросу.
 
 Предполагаю, что у тебя там какой-нибудь TAction или TMenuItem имеет ShortCut = Del, либо {см. приложение}.
 К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 
 Приложение:Переключить в обычный режим Form1.KeyPreview:= True;...procedure Form1.OnKeyPress(Sender: TObject; var Key: Char);begin     then Key:= #0; end;
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 18 июня 2006, 12:08
 Оценка за ответ: 5
 |  Ответ #3. Отвечает эксперт: Евгений Малышев Здравствуйте, feenords.
 Используйте события OnKeyUp и OnKeyDown. В них передается параметр с кодом нажатой клавиши. Код клавиши Del не знаю, но это можно вычислить путем вывода (Например, в TLabel) кода.
 
|  | Ответ отправил: Евгений Малышев (статус: 1-ый класс)Время отправки: 18 июня 2006, 21:29
 Оценка за ответ: 4
 |  
 Мини-форум вопросаВсего сообщений: 16; последнее сообщение — 21 июня 2006, 00:20; участников в обсуждении: 6. 
|   | Виталий Лещенко (статус: 4-ый класс), 18 июня 2006, 01:05 [#1]:У формы есть свойство KeyPreview. Установие его в true и теперь все данные о нажатии будут приходить сначала в ворму а затем компонетам. |  
|   | feenords (статус: 1-ый класс), 18 июня 2006, 01:18 [#2]:Спасибо... видел... но не подумал... |  
|   | feenords (статус: 1-ый класс), 18 июня 2006, 01:28 [#3]:А если, допустим, Del - горячая клавиша меню? Тогда как быть... попробовал - используется гор.клав., а не перехват. |  
|   | Виталий Лещенко (статус: 4-ый класс), 18 июня 2006, 02:29 [#4]:Тогда лучше не использовать такие клавиши в мемю.  Это и не удобно в большинстве случаев и доставляет подобные твоей проблемы. |  
|   | Ерёмин А.А. (статус: *Администратор), 18 июня 2006, 09:44 [#5]:Виталий Лещенко, а зачем отвечаете в мини-форум, а не "полноценным" ответом? Сообщения мини-форума в рассылку не уйдут, а читателям интересно   |  
|   | bruder (статус: 4-ый класс), 18 июня 2006, 11:16 [#6]:А у меня всё и так работает :/ |  
|   | feenords (статус: 1-ый класс), 19 июня 2006, 00:51 [#8]:Спасибо всем за ответы... Почему не действует - я уже понял... просто у меня Del на гор. клав. стояла... и даже не надо ставить у формы KeyPreview в True... она и без этого пашет... а с True антивирус выдаёт, что прога - кейлоггер!
 Но хотелось бы, чтобы Del отображалась как гор.клав., но не действовала как таковая... Подумаем...
 |  
|   | feenords (статус: 1-ый класс), 19 июня 2006, 01:21 [#9]:А код Del - как не странно - по моему, 43, как и у номера вопроса! |  
|   | Dron (статус: Студент), 19 июня 2006, 09:59 [#10]:Я что-то не пойму: а зачем ставить Del как горячую клавишу? Это делает две взаимоисключащие вещи по смыслу. Поставьте тогда уж Ctrl+Del. С уважением. |  
|   | bruder (статус: 4-ый класс), 19 июня 2006, 11:43 [#11]:feenords, а где оценки =) |  
|   | feenords (статус: 1-ый класс), 20 июня 2006, 00:24 [#12]:Ctrl+Del - уже есть... Хотелось бы, чтобы Del просто отображалась как гор.клав., но не импользовалась...
 А если пользователь сам поставит куда-либо эту гор.клав., что тогда... программа глюканёт...
 Оценки все выставил... всем спасибо... ждите новых халявных вопросов...
 |  
|   | bruder (статус: 4-ый класс), 20 июня 2006, 08:36 [#13]:Халявных не надо |  
|   | Ерёмин А.А. (статус: *Администратор), 20 июня 2006, 08:45 [#14]:feenords, если Вы задаёте вопросы просто так, ради интереса, то этого делать не нужно. Спрашивайте о том, что не можете сделать самостоятельно. |  
|   | min@y™ (статус: Доктор наук), 20 июня 2006, 09:58 [#15]:2 Ерёмин А.А.: Да пускай задаёт, надо ж нам чемнить заняцца в рабочее-то время!
  ))))) Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | feenords (статус: 1-ый класс), 21 июня 2006, 00:20 [#16]:Я вопросы задаю не для интереса... просто надо... конечно, большинство я изучаю сам... но как можно узнать о том, чего не знаешь... книги не в счёт. Методом научного (простите за выражение) тыка получается не всё и не всегда... а вопросы для Вас скорее всего халявные (т.е. легкие), а для меня пока что нет...
 И тем более - вопросы нестандартные (см. минифорум)... такого в книге не найдёшь...
 >Хотелось бы, чтобы Del просто отображалась как гор.клав., но не использовалась...
 Покажите мне страницу в книге, где такое можно узнать?.. Буду премного благодарен... на сегодня всё... Спасибо за всё...
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |