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




Вниз

CRT и Console 


Evgeny   (2003-06-13 08:25) [0]

Имеется CRT модуль для консольного приложения, но есть маленькая проблема, функция ReadKey в нем реализована без ожидания нажатия клавиши, и нет возможности проверить были ли нажаты клавиши Shift, Ctrl, Alt. Где найти более точную реализацию указанной функции совместимую с 7 Pascal`ем?



Holy   (2003-06-13 10:24) [1]

Организуй ожидание сам.
repeat
c:=ReadKey;
until c<>#0;

И все.
Даже если потом этот код запустить на Паскале 7. Он будет работать корректно.



Evgeny   (2003-06-13 10:52) [2]

Увы это консольное 32 битное приложение и опрос ведется с помощью ReadConsoleInput. Сделать цикл не проблема, проблема правильно получить комбинации типа Alt+



Bachin   (2003-06-13 13:18) [3]

могу посоветовать ссылки на готовые реализации. принцип такой:
procedure ProcessConsoleEvents;
var
I: Integer;
EventCount, EventsRead: DWORD;
InputRecord: TInputRecord;
begin
EventCount := 0;
GetNumberOfConsoleInputEvents(InHandle, EventCount);
for I := 1 to EventCount do
begin
ReadConsoleInput(InHandle, InputRecord, 1, EventsRead);
if InputRecord.EventType = KEY_EVENT then
HandleKeyEvent(InputRecord)
else if InputRecord.EventType = MOUSE_EVENT then
HandleMouseEvent(InputRecord);
end;
end;

ну а дальше смотришь:
InputRecord.Event.KeyEvent.dwControlKeyState;

ну и:
if InputRecord.Event.KeyEvent.bKeyDown then
begin
VirtualKeyCode := InputRecord.Event.KeyEvent.wVirtualKeyCode;



Evgeny   (2003-06-13 14:14) [4]

Ссылки это интересно, подкинь.




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




Наверх





Память: 0.72 MB
Время: 0.2 c
14-84591          Jam                   2003-06-08 23:29  2003.06.26  
Как запустить другое приложение


14-84632          Berzercer             2003-06-09 18:09  2003.06.26  
Общение в одну сторону? Ну, ладно.


1-84208           Rule                  2003-06-12 17:59  2003.06.26  
Вызов браузера, установленоого по умолчанию с нужной страницей


1-84354           Rinat                 2003-06-16 14:04  2003.06.26  
Не могу разобраться с компонентом на основе кнопки


1-84321           AndrewR               2003-06-16 06:28  2003.06.26  
Как можно вызвать FindDialog, что бы в Memo текст искал. Может ке