Главная страница
    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.011 c
8-1127918290
Виталька2005
2005-09-28 18:38
2006.03.12
Перемещение фигуры на TCanvas


2-1140629769
Golikov
2006-02-22 20:36
2006.03.12
QuickRep может кто нибуть обьяснить ?????


9-1111792617
Yegorchic
2005-03-26 02:16
2006.03.12
Русская документ по GLScene


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


4-1134833366
HandleFinder
2005-12-17 18:29
2006.03.12
Как найти Handle окна сообщения ShowMessage ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский