Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

перехват нажатия клавиши в консольном приложении


Дева ©   (2006-02-22 19:48:00) 

Здравствуйте мастера, подскажите пожалуйста. В Паскале процедура ReadKey считывала с клавиатуры вводимый символ. Однако это процедура относиться к модулю CRT, а в Дельфи вообще не принимается. Каким образом считывать с клавиатуры в консольном приложении? И есть ли возможность как-то привязать паскалевский модуль с расширением tpu, или может где взять его?
Заранее спасибо


Tonich   (2006-02-23 10:57:00) [1]

ну вот как у меня сделано


var
Continue:BOOL;
iBuf:TInputRecord;
iEvent:DWORD;

function GetConInputHandle : THandle;
begin
 Result := GetStdHandle(STD_INPUT_HANDLE)
end;

procedure .....;
begin
  ReadConsoleInput(GetConInputHandle,iBuf,1,iEvent);
  case iBuf.EventType of

    KEY_EVENT:
             begin
               if (iBuf.Event.KeyEvent.bKeyDown) and
                  (iBuf.Event.KeyEvent.wVirtualKeyCode = VK_ESCAPE)
               then Continue := False;
             end;
  end;
end;


ну и собственно цикл обработки сообщение


 Continue := True;
 while Continue do   ProcessedEvents;


да и насчет вывода русских букв в консоле

> sunwheel1   (23.02.06 09:42) [8]


sunwheel1   (2006-02-23 09:42:00) [2]

>Дева ©   (22.02.06 20:12) [7]

Только учти, что при выводе русских букв в консоли тебе придеться использовать CharToOem, иначе увидишь одни коряги вместо русских букв.


Дева   (2006-02-22 20:12:00) [3]

А с клавиатурой что работает?
Меня просто интересует аналог ReadKey, быстро и сердито
Мне курсовую надо сделать на Паскале, только у меня паскаль не хочет работать с русским шрифтом напрочь! Вот и решила его сделать на Дельфи, в консоле.
Надо как-то так, чтобы долго не заморачиваясь...


Джо   (2006-02-22 20:08:00) [4]

> [5] Дева ©   (22.02.06 20:07)
> ReadConsole
> ReadConsoleInput
> А это что за процедуры? Из какого модуля?

Это WinAPI-функции для работы с консолью. Делфи-прототипы объявлены в Windows.pas.


Дева   (2006-02-22 20:07:00) [5]

2 Джо

ReadConsole
ReadConsoleInput


А это что за процедуры? Из какого модуля?


Джо   (2006-02-22 20:02:00) [6]

ReadConsole
ReadConsoleInput.


Дева   (2006-02-22 20:02:00) [7]

Эта процедура разве не с файлом работает?


Дева   (2006-02-22 19:58:00) [8]

Что эта функция делает?
Мне нужно перехват каждой клавиши произвести, то есть настроить фильтр ввода...


umbra   (2006-02-22 19:55:00) [9]

а чем не устраива.т функции read/readlnиз модуля Systemделфи?


Наверх

Титульная страница Поиск, карта сайта Написать письмо