Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анализ нажатия клавиши, как прописать анализ нажатия Ctrl+A 
:(
    Опции темы
Надя
  Дата 12.11.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.11.2006

Репутация: нет
Всего: нет



 smile Я прочла, что по событию OnKeyDown в программах надо анализ проводить на нажатую клавишу в таком виде как VK_F10, VK_CONTROL и прочее, а при анализе события OnKeyPress там уже клавиши надо описывать иначе в кодах ASCII.
А вопрос мой состоит в том, где можно найти полное описание по кодам клавиш (в обеих кодировках). А к примеру, вот я хотела бы знать, как прописать анализ события если нажать Ctrl+A, Crtl+C , Ctrl+V ? По какому событию проводить анализ и каким кодам будут соответствовать эти комбинации клавиш.
Это реальный набор, который меня интересует, а в принципе хотелось бы весь принцип знать. 
Знаю, что вопрос простой, я честно сама пыталась поискать ответ на него, smile но вот уж все же пришлось обратиться сюда за помощью. Заранее благодарна.  smile  
PM MAIL   Вверх
TaNK
Дата 12.11.2006, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Еслои я не ошибаюсь - в книге Архангельского это есть!

Добавлено @ 11:48 
извеняюсь - но это относится к С++ , но думаю и в Delphi покатит!



--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Тьма
Дата 12.11.2006, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 22.1.2005
Где: Украина, Винница

Репутация: 1
Всего: 4



событие onKeyUp

if (Key = 41) and (Shift = ssCtrl)
   then ....

если делать в форме, то KeyPrevie := true 

Это сообщение отредактировал(а) Тьма - 12.11.2006, 11:52


--------------------
Vir magni ingenii                 
PM MAIL ICQ   Вверх
TaNK
Дата 12.11.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



русские символы - А-я(192-255) в десятиной системе! кодовая таблица 1251 - Ms Windows
русские символы - А-я(128-255) в десятиной системе! кодовая таблица 866 - Ms Dos
англ символы A-z(65-90)


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
ShadeSt
Дата 12.11.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 9.8.2005
Где: Россия, г. Ставро поль

Репутация: нет
Всего: 7



Если хочется узнать ASCII код клавиши, но ничего под рукой нет, то можно в событии OnKeyPress написать код примерно следующего содержания:
Код

  Self.Caption := IntToStr(Ord(Key));
 
и после нажатия кнопочки сличать ее код с заголовка окна

По поводу виртуальных кодов клавишь, типа VK_F10, то их список можно увидеть, ежели
перейти к объявлению константы ( пишем в редакторе кода VK_F10 ставим на эту константу курсор и нажимаем Alt+UP), там все будет понятно.

По поводу статуса клавиш модификаторов (ctrl, shift, alt) то их состояние надо смотреть в shift state (смотри пример, который привел Тьма)


--------------------
It's nice to be importand, but it's more importand to be nice © Scooter
PM MAIL ICQ Jabber   Вверх
Guedda
Дата 12.11.2006, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



А что, ShortCut у компонента не подходит?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Надя
Дата 12.11.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.11.2006

Репутация: нет
Всего: нет



Спасибо ShadeSt  и Тьме - Как получить аски-код клавиши я теперь знаю, именно это я и хотела знать,  smile но вот пытаюсь использовать эту возможность уже зная код нажатой клавиши, что-то не получается. Короче, в мемо поле хочу выделить весь текст по нажатию клавиш Ctrl+A, поэтому в событие OnKeyPress Мемо компонента я прописала 
if (Key = 97) and (Shift = [ssCtrl])  then
 begin 
   Memo1.SelectAll;
   Memo1.SetFocus;
 end;

но никакой реакции  smile 

А насчет совета Guedda - честно говоря никогда не приходилось использовать и сейчас почитала в хелпе - все равно не знаю, как этот вариант реализовать  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1046 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.