IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Коды клавиш
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


А какие коды соответствуют клавишам
<--- , --->?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Case ReadKey Of
#0: Begin
Case ReadKey Of
#72: { Вверх }
#80: { Вниз }
#75: { Влево }
#77: { Вправо }
End;
End;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Данная прога возращает значения нажатых клавиш в ASCII
Uses Crt;
Var ch :Char;
kod :Integer;
Begin
ClrScr;
WriteLn('ASCII');
kod := 0;
While(kod <> 27) Do
Begin
ch := ReadKey;
kod := Ord(ch);
WriteLn(ch,' = ',kod);
End;
End.

Программа работает до нажатия Esc
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


и какойже результат твоя программа выдает при нажатии например тех-же стрелочек ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Sto, при считывании кода клавиши, проверь, что он не ноль, иначе - считай еще раз и учти что получил расширенный код клавиши.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Вверх 72
Вниз 80
Влево 75
Вправо 77
С помощью проги можно также унанать код сочитания клавиш таких как Alt+клавиша или Ctrl+клавиша

На разных комп. может быть разная таблица ASCII
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Вот пример программы на использование управляющих клавиш.
Uses Crt;
Const Up = #72;
Down = #80;
Left = #75;
Right = #77;
Esc = #27;
Var x, y :Integer;
ch :Char;
Begin
ClrScr;
x:=5;
y:=5;
While(ch <> Esc) Do
Begin
ClrScr;
GotoXY(x,y);
Write('0');
ch := ReadKey;
If ch = #0 Then
Begin
ch := ReadKey;
Case ch of
Up : y:=y-1;
Down : y:=y+1;
Left : x:=x-1;
Right : x:=x+1;
End;
End;
End;
End.

Как убрать мигающий курсор незнаю.
Кто знает подскажите.

Сообщение отредактировано: Sto -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Sto @ 28.04.2007 20:04) *

Вот пример программы на использование управляющих клавиш.
Кто знает подскажите.

Sto, ты читать не умеешь - только писатель? Читай ответы Klem4 и Altair'a - может, осознаешь свои ошибки.. А также понажимай в своей программе латинские буквы: H K M P.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


И что это за цытата????

Читать я умею, ошибки нигде невижу!!!!!
Про клавиши H K M P знаю, если знаеш как сделать лутше почему не написал???????????????

Сообщение отредактировано: Sto -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
Как убрать мигающий курсор незнаю.
Поиск - полезная штука, правда?

Курсор
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Sto @ 28.04.2007 23:47) *

если знаеш как сделать лутше почему не написал???????????????

Потому что уже написано.. См. сообщение #2.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 70
Пол: Мужской
Реальное имя: Илья

Репутация: -  2  +


Извиняюсь за неправильные программы. unsure.gif
В будущем буду повнимательней.
Исправил код второй проги.
Вот исправленая первая.
Uses Crt;
Var ch :Char;
Begin
ClrScr;
WriteLn('ASCII');
While(ch <> #27) Do
Begin
ch := ReadKey;
If ch = #0 then
Begin
ch := ReadKey;
End
Else
Begin
Write('Char = ');
If ch < #32 Then Write('^',Chr(Ord(ch)+64),' ')
Else Write(ch,' ');
End;
WriteLn('ASCII = ',Ord(ch));
End;

End.


Сообщение отредактировано: Sto -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Это лучше! smile.gif
На мой взгляд, ты зря не выводишь "0". Дело в том, что стрелки, F-клавиши и т.д имеют двойные коды. И мне кажется, не нужно скрывать это при выводе значений, иначе легко ошибиться.
Второе - лучше используй repeat, тогда не нужно будет инициализировать ch (что ты, кстати, забыл сделать в последнем варианте - не нужно полагаться на автоматическое обнуление).
И третье - зачем ты один оператор окружаешь скобками?.. нет смысла в этом.
Исправишь?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Код: 32 Символ: (пробел)
Код: 33 Символ: !
Код: 34 Символ: "
Код: 35 Символ: #
Код: 36 Символ: $
Код: 37 Символ: %
Код: 38 Символ: &
Код: 39 Символ: '
Код: 40 Символ: (
Код: 41 Символ: )
Код: 42 Символ: *
Код: 43 Символ: +
Код: 44 Символ: ,
Код: 45 Символ: -
Код: 46 Символ: .
Код: 47 Символ: /
Код: 48 Символ: 0
Код: 49 Символ: 1
Код: 50 Символ: 2
Код: 51 Символ: 3
Код: 52 Символ: 4
Код: 53 Символ: 5
Код: 54 Символ: 6
Код: 55 Символ: 7
Код: 56 Символ: 8
Код: 57 Символ: 9
Код: 58 Символ: :
Код: 59 Символ: ;
Код: 60 Символ: <
Код: 61 Символ: =
Код: 62 Символ: >
Код: 63 Символ: ?
Код: 64 Символ: @
Код: 65 Символ: A
Код: 66 Символ: B
Код: 67 Символ: C
Код: 68 Символ: D
Код: 69 Символ: E
Код: 70 Символ: F
Код: 71 Символ: G
Код: 72 Символ: H
Код: 73 Символ: I
Код: 74 Символ: J
Код: 75 Символ: K
Код: 76 Символ: L
Код: 77 Символ: M
Код: 78 Символ: N
Код: 79 Символ: O
Код: 80 Символ: P
Код: 81 Символ: Q
Код: 82 Символ: R
Код: 83 Символ: S
Код: 84 Символ: T
Код: 85 Символ: U
Код: 86 Символ: V
Код: 87 Символ: W
Код: 88 Символ: X
Код: 89 Символ: Y
Код: 90 Символ: Z
Код: 91 Символ: [
Код: 92 Символ: \
Код: 93 Символ: ]
Код: 94 Символ: ^
Код: 95 Символ: _
Код: 96 Символ: `
Код: 97 Символ: a
Код: 98 Символ: b
Код: 99 Символ: c
Код: 100 Символ: d
Код: 101 Символ: e
Код: 102 Символ: f
Код: 103 Символ: g
Код: 104 Символ: h
Код: 105 Символ: i
Код: 106 Символ: j
Код: 107 Символ: k
Код: 108 Символ: l
Код: 109 Символ: m
Код: 110 Символ: n
Код: 111 Символ: o
Код: 112 Символ: p
Код: 113 Символ: q
Код: 114 Символ: r
Код: 115 Символ: s
Код: 116 Символ: t
Код: 117 Символ: u
Код: 118 Символ: v
Код: 119 Символ: w
Код: 120 Символ: x
Код: 121 Символ: y
Код: 122 Символ: z
Код: 123 Символ: {
Код: 124 Символ: |
Код: 125 Символ: }
Код: 126 Символ: ~
Код: 127 Символ: 
Код: 128 Символ: Ђ
Код: 129 Символ: Ѓ
Код: 130 Символ: ‚
Код: 131 Символ: ѓ
Код: 132 Символ: „
Код: 133 Символ: …
Код: 134 Символ: †
Код: 135 Символ: ‡
Код: 136 Символ: Ђ
Код: 137 Символ: ‰
Код: 138 Символ: Љ
Код: 139 Символ: ‹
Код: 140 Символ: Њ
Код: 141 Символ: Ќ
Код: 142 Символ: Ћ
Код: 143 Символ: Џ
Код: 144 Символ: ђ
Код: 145 Символ: ‘
Код: 146 Символ: ’
Код: 147 Символ: “
Код: 148 Символ: ”
Код: 149 Символ: •
Код: 150 Символ: –
Код: 151 Символ: —
Код: 152 Символ:
Код: 153 Символ: ™
Код: 154 Символ: љ
Код: 155 Символ: ›
Код: 156 Символ: њ
Код: 157 Символ: ќ
Код: 158 Символ: ћ
Код: 159 Символ: џ
Код: 160 Символ:
Код: 161 Символ: Ў
Код: 162 Символ: ў
Код: 163 Символ: Ј
Код: 164 Символ: ¤
Код: 165 Символ: Ґ
Код: 166 Символ: ¦
Код: 167 Символ: §
Код: 168 Символ: Ё
Код: 169 Символ: ©
Код: 170 Символ: Є
Код: 171 Символ: «
Код: 172 Символ: ¬
Код: 173 Символ: ­
Код: 174 Символ: ®
Код: 175 Символ: Ї
Код: 176 Символ: °
Код: 177 Символ: ±
Код: 178 Символ: І
Код: 179 Символ: і
Код: 180 Символ: ґ
Код: 181 Символ: µ
Код: 182 Символ: ¶
Код: 183 Символ: ·
Код: 184 Символ: ё
Код: 185 Символ: №
Код: 186 Символ: є
Код: 187 Символ: »
Код: 188 Символ: ј
Код: 189 Символ: Ѕ
Код: 190 Символ: ѕ
Код: 191 Символ: ї
Код: 192 Символ: А
Код: 193 Символ: Б
Код: 194 Символ: В
Код: 195 Символ: Г
Код: 196 Символ: Д
Код: 197 Символ: Е
Код: 198 Символ: Ж
Код: 199 Символ: З
Код: 200 Символ: И
Код: 201 Символ: Й
Код: 202 Символ: К
Код: 203 Символ: Л
Код: 204 Символ: М
Код: 205 Символ: Н
Код: 206 Символ: О
Код: 207 Символ: П
Код: 208 Символ: Р
Код: 209 Символ: С
Код: 210 Символ: Т
Код: 211 Символ: У
Код: 212 Символ: Ф
Код: 213 Символ: Х
Код: 214 Символ: Ц
Код: 215 Символ: Ч
Код: 216 Символ: Ш
Код: 217 Символ: Щ
Код: 218 Символ: Ъ
Код: 219 Символ: Ы
Код: 220 Символ: Ь
Код: 221 Символ: Э
Код: 222 Символ: Ю
Код: 223 Символ: Я
Код: 224 Символ: а
Код: 225 Символ: б
Код: 226 Символ: в
Код: 227 Символ: г
Код: 228 Символ: д
Код: 229 Символ: е
Код: 230 Символ: ж
Код: 231 Символ: з
Код: 232 Символ: и
Код: 233 Символ: й
Код: 234 Символ: к
Код: 235 Символ: л
Код: 236 Символ: м
Код: 237 Символ: н
Код: 238 Символ: о
Код: 239 Символ: п
Код: 240 Символ: р
Код: 241 Символ: с
Код: 242 Символ: т
Код: 243 Символ: у
Код: 244 Символ: ф
Код: 245 Символ: х
Код: 246 Символ: ц
Код: 247 Символ: ч
Код: 248 Символ: ш
Код: 249 Символ: щ
Код: 250 Символ: ъ
Код: 251 Символ: ы
Код: 252 Символ: ь
Код: 253 Символ: э
Код: 254 Символ: ю
Код: 255 Символ: я
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  -2  +


Вот полезная функция получше ReadKey.
Содержит код клавиши в строке.
Пример:
клавиша вниз будет: '080',
клавиша P будет: '80'.


function getkey: string;
var
key: char;
s: string;
begin
key:=readkey;
if key<>#0 then begin str(ord(key),s); getkey:=s; end
else begin str(ord(readkey),s); getkey:='0'+s; end
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






Seln
Особенно это полезно будет, когда вместо Case тебе придется городить огород с парой десятков If ... Else. Удобный велосипед, правда? dry.gif

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской

Репутация: -  -2  +


Цитата(volvo @ 20.05.2007 17:29) *

Особенно это полезно будет, когда вместо Case тебе придется городить огород с парой десятков If ... Else. Удобный велосипед, правда? dry.gif


Хе-хе smile.gif ага
А, кстати, нафиг там else нужен?
Допустим:
...
...
repeat
key:=getkey;
if key='27' then exit;
if key='080' then p:=p+1;
if key='072' then p:=p-1;
until false
...
...

Ну и нафиг?
Так даже прикольней. smile.gif


Сообщение отредактировано: Seln -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.12.2020 16:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name