Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: KEY PRESS в Pascale  (Прочитано 6599 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Gordon
Гость
« : 22-09-2004 18:07 » 

Как в Pascale определить какая кнопка нажата.
Аналог INKEY$ в Basic

Короче, переписать примерно такой  Basic-код:
a$ = INKEY$
IF a$ = "Y" OR a$ = "y" THEN  и т.д.
в Pascale.(именно в Pascale, а не в Delphi)
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 22-09-2004 18:35 » new

Вот код,
Код:

uses Crt;
var
Key{ char;
Begin
while true do Begin
Key{=readkey;
case Key of
#0{ WriteLN)'#0 + #', ord)readkey::;
#27{ Begin WriteLN)'#27 - Esc pressed.':; Halt; End;
Else WriteLN)ord)key::
End;
End;
End.

Оригинал лежит здесь http://borlpasc.narod.ru/FAQ/2_4_5.htm . Найдено Рамблером.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #2 : 23-09-2004 07:19 » 

иными словами, ReadKey считывает один байт. если же нажатие генерериует два байта (для функциональных клавиш), то первый вызов вернёт 0, а следующий - собственно, скан-код.

а твой вариант будет выглядеть примерно так, как ты и написал:

a := ReadKey.
if (a = 'Y') or (a = 'y') then
  ...


хотя в паскале, по-моему, уже есть функция UpCase или что-то типа. приведение к верхнему регистру, в общем.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines