Вниз
Скачать: CL | DM;

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

← →
Дева ©   (2006-02-22 19:48) [0]

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


← →
umbra ©   (2006-02-22 19:55) [1]

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


← →
Дева ©   (2006-02-22 19:58) [2]

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


← →
Джо ©   (2006-02-22 20:02) [3]

ReadConsole
ReadConsoleInput.


← →
Дева ©   (2006-02-22 20:02) [4]

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


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

2 Джо

ReadConsole
ReadConsoleInput


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


← →
Джо ©   (2006-02-22 20:08) [6]

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

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


← →
Дева ©   (2006-02-22 20:12) [7]

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


← →
sunwheel1   (2006-02-23 09:42) [8]

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

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


← →
Tonich ©   (2006-02-23 10:57) [9]

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


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]



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
3-1137401302
fishka
2006-01-16 11:48
2006.03.12
Запись картинки в DBF - файл


6-1132919309
Dmitry_177
2005-11-25 14:48
2006.03.12
RasConnectionNotification, определение дисконнекта


15-1139920034
Alexey V.
2006-02-14 15:27
2006.03.12
Как такое делается? Впервые такое встретил


15-1139983253
Ega23
2006-02-15 09:00
2006.03.12
С Днём рождения! 15 февраля


2-1140985062
Vitalik__
2006-02-26 23:17
2006.03.12
Перевод значения String в число.




   Наверх