Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1140462150
laxmatiy
2006-02-20 22:02
2006.03.12
Dial-Up (компонент ras.dcu)


1-1139401625
Huk
2006-02-08 15:27
2006.03.12
Как получить список фонтов в WideString?


1-1139391952
Silver...
2006-02-08 12:45
2006.03.12
TPageControl + TabPosition=tpBottom + XP = зрительный глюк


10-1114366435
ink
2005-04-24 22:13
2006.03.12
Как в TWebBrowser поменять путь загрузки рисунка.


2-1140441372
John_Doe
2006-02-20 16:16
2006.03.12
Удаляет запись,но после выдает ошибку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский