IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Буфер клавиатуры
Bokul
сообщение 12.12.2006 0:51
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Решил даром не флудить.
Что представляет с себя буфер клавиатуры? Где он хранится и каковой его размер?
И как вот этот код
Цитата

while keypressed do readkey;


или


repeat
readkey
until not keypressed;


его очищает?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
SKVOZNJAK
сообщение 14.12.2006 12:17
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


А кто сказал что это виндовс ;) Речь идёт о библиотеке сдл и о настальгии по таким простым методам доступа к клаве в любое время суток smile.gif http://sdl4fp.sourceforge.net/index.html Главная её особенность - она работает в линуксе! Вот с чтением клавы в видеорежиме там очень непросто. И к портам только суперпользователь напрямую обратиться может и ось реально многозадачная. Теоретически SDL можно скомпилить и под виндовс. А практически, почти всё в ней импортируется, а под виндой импорт не работает, чего-то не хватает. Возможно исходники скомпилируются, если в каталог добавить файл SDL.DLL скачанный из ослика. Но это непроверено. Вот работающий пример использования клавы в видеорежиме. Так же получается доступ к мыши, джойстику. Читаются события keydown и keyup, а для клавиш модификаторов ещё и маски.
program demo;

uses
SDL, SDL_Video, SDL_Events;

const
width = 720;
height = 400;
colordepth = 32;

var
screen: PSDL_Surface;
image: PSDL_Surface;
event: PSDL_Event;
done: Boolean;
filename: String;

label 1;


begin

SDL_Init(SDL_INIT_VIDEO);
event := new(PSDL_Event);
screen := SDL_SetVideoMode(width, height, colordepth, (SDL_FULLSCREEN + SDL_SWSURFACE));
if screen = nil then
begin
writeLn ('Couldn''t initialize video mode at ', width, 'x', height, 'x', colordepth, 'bpp');
halt(1);
end;
filename := '0.bmp';
image := SDL_loadBMP(@filename[1]);
if (image = nil) then
begin
writeLn('Couldn''t load ' + filename);
halt(1);
end;
if (SDL_BlitSurface(image, nil, screen, nil) < 0) then
begin
writeLn('BlitSurface error:' {+ SDL_GetError()});
end;
SDL_updateRect(screen, 0, 0, image^.w, image^.h);
SDL_freeSurface(image);
done := FALSE;
while (done = FALSE) do
begin
if (SDL_PollEvent(event) > 0) then
begin
CASE event^.eventtype OF
SDL_KEYDOWN, SDL_MOUSEBUTTONDOWN :done := TRUE;
end;
end;
end;


SDL_freeSurface(screen);
SDL_Quit ;
end.


Сообщение отредактировано: SKVOZNJAK - 14.12.2006 12:22
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 4:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"