Вниз
Скачать: 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.012 c
14-20799
gsvserg
2003-07-22 13:36
2003.08.07
TexcelApplication


3-20398
{bas}
2003-07-15 17:37
2003.08.07
XML, как БД


1-20576
Immortal_Death
2003-07-18 22:20
2003.08.07
Мышь на компоненте или в не его приделах.


3-20430
sergg
2003-07-17 10:55
2003.08.07
Поиск через LIKE независимо от регистра символов шаблона


1-20494
js
2003-07-25 09:30
2003.08.07
почему появляется ошибка если использовать TListView




   Наверх