Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2009, 19:48   #1
Сид
Пользователь
 
Аватар для Сид
 
Регистрация: 07.04.2009
Сообщений: 12
По умолчанию Отловить нажатие двух клавиш

При обработке нажатия одной клавиши выводит без проблем:
Код:
if (Key = 16) then 
 Memo2.SelText := 'tratata';
А вот с двумя в Memo ничего не выводится:
Код:
  
if (Key = 16)and(Key = 70) then
   Memo2.SelText := 'tratata';
Как поступить?

Для справки 16-это Shift, а 70-это ' f '.
Учение-жесть,но без него никуда!
Сид вне форума Ответить с цитированием
Старый 28.12.2009, 20:16   #2
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Сид, я уже создавал похожую тему, там есть решение вашей проблемы:Клик-Клак
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 28.12.2009, 20:42   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

единственно, что в данном случае я бы ввел некоторые доработки...
Код:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (ssshift in shift)and(key= ord('F')) then Memo1.SelText:= 'tratata' // без key = #0, будет введен 'tratataf'
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
 If ((GetKeyState(VK_SHIFT) AND 128)=128) and
    ((GetKeyState(ord('F')) AND 128)=128) then key:=#0 // не дает ввести f
end;
key в #0 нужно для устранения трех вещей:
1- если производить замену выделенной части, то при этом вместе с tratata будет введен и f, т.е. tratataf... key не дает этого сделать
2- так key не дает собственно при этом ничего ввести, нужно ограничить его только комбинацией shift+f
3- устараняет неприятный звук бум, как уже обсуждалось как-то
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отловить нажатие клавиши в ячейке (до нажатия enter) loginrl103 Microsoft Office Excel 3 07.08.2009 15:10
Отловить нажатие кнопок Sanek_ntsk Паскаль, Turbo Pascal, PascalABC.NET 2 12.03.2008 17:38
Отловить нажатие левой кнопки мыши на р листе SAndrus Microsoft Office Excel 2 14.07.2007 13:13
Нажатие клавиш VanDerKeen Win Api 1 03.06.2007 21:13