![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 14
|
![]()
Я хочу реализовать в программе ввод данных в режиме диалога с пользователем, т.е. он может сам вводить свои данные и видеть процесс работы. Перемещение между кнопками - через курсорные клавиши. Ввод данных и перемещение я успешно сделала. Проблема в том, что клавиши типа Delete, Insert, F1-F10 тоже выводятся на экран. Я пробовала заблокировать их через коды клавиш. Например, стрелка вправо выводила на экран латинскую М. При блокировке она не стала этого делать, но обычная латинская М тоже перестала работать! Пожалуйста, подскажите, как мне сохранить полный и правильный ввод с текстовой и цифровой клавиатуры и игнорировать остальные клавиши (стрелки, Delete, Insert и т.д.)?
![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 27.04.2010
Сообщений: 15
|
![]()
Ну это надо на код смотреть а вообще у любой клавиши насколько я помню из школы есть два кода в паскале
типо первый и второй: вроде так. первый отвечает за код печатных символов на клавиатуре а второй за непечатные. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 14
|
![]()
А можно поподробнее про печатные и непечатные? Я этого нигде не могу найти...
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 14
|
![]()
Код данной процедуры вот:
Код:
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 27.04.2010
Сообщений: 15
|
![]()
все клавиши на клавиатуре несут инфу в 2 байта тоесть 1 регистр (если на ассемблере)
1 байт - код кнопки типо A..Z,a..z,0..9,а..я и тому подобное пример: допостим мы хотим получить код символа: ch:=readkey; write(ord(ch):2); если нажать на клавиши A..Z,a..z,0..9,а..я то получим реальный код данной клавиши. а если нажать клавиши типо f1-f10 то получим 0 write(ord(readkey):2); а с помощью вот этой штуки уже получим код символов типо f1-f10 Вот готовая прога она показывает коды символов: Цитата:
Последний раз редактировалось rlevv; 01.05.2010 в 17:45. |
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 14
|
![]()
Подскажите, пожалуйста, как мне нужно переделать этот кусочек программы, чтобы можно было одновременно и перемещаться по меню, и получать правильный ввод? Я не очень понимаю, как это реализовать...
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 27.04.2010
Сообщений: 15
|
![]()
Ну в моем примере ведь как раз разобран твой случай
ch:=readkey; читаем символ if ord(ch)=0 then если введено A..Z,a..z,0..9,а..я и тд. то невыполнится условие так как в ch будет код символа begin write(ord(readkey):2); - 2Й код end else write(ord(ch):2);- 1Й код Короче: для тех кто в танке Ставишь просто перед тем как выводить на экран считанный символ проверку что типо ord(ch)<>0 и всЁ все символы типо f1 и другие служебные клавиши просто не вылезут на экран |
![]() |
![]() |
![]() |
#8 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
Чтобы грамотно сделать меню, правильно по нему перемещаться и сделать интерактивный диалог с пользователем используй TurboVision!!!
Перемешивай дело с бездельем и не сойдешь с ума...
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 27.04.2010
Сообщений: 15
|
![]() |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 01.05.2010
Сообщений: 14
|
![]()
Тем более TurboVision использовать нельзя, всё нажно делать на обычном Паскале
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
коды клавиш на ТС | alex(21) | Общие вопросы C/C++ | 1 | 13.11.2009 10:23 |
коды клавиш-? | Evgenii | Общие вопросы Delphi | 8 | 28.10.2009 22:00 |
отобразить в memo дополнительные символы | furstenberg | Общие вопросы Delphi | 7 | 02.10.2008 13:45 |
Коды клавиш | valerij | Microsoft Office Excel | 0 | 20.08.2008 07:49 |
Коды клавиш | KAMASUTR | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 11 | 09.08.2007 22:25 |