Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Вниз

Сишный kbhit() или паскалевский ReadKey в дельфях?   Найти похожие ветки 

 
NetKnight   (2003-07-21 21:42) [0]

Народ, толи я затупил, толи дейчтвительно о такой функции забыли в дельфях... Как в консольном режиме узнать, что юзер нажал клавишу и какую? (Не Read, а функция которая не ждёт нажатия, а просто проверяет)
В Борладовском паскале 7.0 была функция ReadKey из библиотеки Crt, а сишным аналогом была kbhit(), вроде stdio.h
Бибиотеки Crt в дельфи нет!

Как эту проблему решить в дельфях?


 
T2   (2003-07-21 21:48) [1]

Procedure T_Gu.GuPause; {Pause ~~}
Begin
Repeat FlushConsoleInputBuffer(GuInHandle);Gudw:=0;Gukey:=0;
Application.ProcessMessages;Sleep(100);PeekConsoleInput(GuInHandle,GuBuf,1,Gudw);
//guouttext(12,12,10,inttostr(GuBuf.Event.KeyEvent.wVirtualKeyCode)+" "); ///~~~~~~~~~~~~~~~~~~~~~~~~~~
Until (GuBuf.Event.KeyEvent.wVirtualKeyCode=13)Or(GuBuf.Event.KeyEvent.wVirtualKeyCode=27);
If GuBuf.Event.KeyEvent.wVirtualKeyCode=27 Then Destroy;
FlushConsoleInputBuffer(GuInHandle);Gudw:=0;Gukey:=0;
Sleep(100);GuBuf.Event.KeyEvent.wVirtualKeyCode:=0;GuBuf.Event.KeyEvent.bKeyDown:=false;
End;

В консоле все намного по другому - даю кусок своей функции,
основу должен понять - дальше сам. Сам я долго с таким вопросом долбался. :)


 
Palladin   (2003-07-21 21:51) [2]

ReadConsoleInput + F1


 
NetKnight   (2003-07-24 16:06) [3]

--> T2 & Palladin
А как получить ConsoleHandle?


 
NetKnight   (2003-07-25 02:48) [4]


function ReadConsoleKey : Char;
var
hConsoleInput : Cardinal;
lpBuffer : _Input_Record;
nLength : Cardinal;
lpNumberOfEventsRead : Cardinal;
begin
lpNumberOfEventsRead := 0;
nLength := 1;
if not PeekConsoleInput(hConsoleInput,lpBuffer,nLength,lpNumberOfEventsRead) then write("error!");
GetLastError;
Result := lpBuffer.Event.KeyEvent.AsciiChar;
end;

Не работает, что делаю не так?



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

Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
14-20794
blackman
2003-07-18 16:34
2003.08.07
В пятницу известному российскому поэту Евгению Евтушенко 70 лет


3-20388
td
2003-07-15 23:24
2003.08.07
Lookup


1-20614
DenisM
2003-07-24 12:28
2003.08.07
Как убрать подписи к значкам в ShellListView


3-20411
captive
2003-07-15 17:15
2003.08.07
Преобразование типов в IB


1-20520
alois
2003-07-19 11:09
2003.08.07
Запуск файла из командной строки





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