Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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]

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



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

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

Наверх





Память: 0.45 MB
Время: 0.026 c
1-84121
Sliften
2003-06-10 09:13
2003.06.26
навигация по ENTER


14-84763
Vulko
2003-05-24 11:44
2003.06.26
Что добавить в дистрибутив


1-84232
Кен
2003-06-10 03:48
2003.06.26
Focus . Как узнать где он в данный момент находится ?


14-84584
Yanis
2003-06-08 12:51
2003.06.26
Скучно


14-84672
DenKop
2003-06-08 20:51
2003.06.26
Знатокам MSOffice, Word





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