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

Сишный 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 вся ветка

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



Память: 0.45 MB
Время: 0.013 c
3-20428
Алексей
2003-07-17 09:37
2003.08.07
Конвертация DBF в DB


14-20669
Dimaxx
2003-07-22 01:21
2003.08.07
Скорости у CD-ROM


3-20415
KIR
2003-07-16 17:08
2003.08.07
Ограниченные возможности SQL в BDE...


6-20655
HardClubber
2003-05-30 20:09
2003.08.07
Sockets


3-20389
RomanRom2
2003-07-15 15:30
2003.08.07
Создать базу и таблицу в ней.




   Наверх