Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
Внизперехват нажатия клавиши в консольном приложении Найти похожие ветки
← →
Дева © (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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c