Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Мастера помогите плиз с DirectInput ом!   Найти похожие ветки 

 
NOX   (2004-07-22 13:16) [0]

Здраствуйте! Помогите решить такую проблему, наверняка с ней кто-то сталкивался:
использую в DirectInput8 буферную схему определения нажатия и отжатия клавиш, но вот в чём проблема,
перед выполнением команды происходит небольшая задержка, которая видна на глаз и сильно раздражает.
а при использовании схемы непосредственного опроса состояния клавиш в данный момент времени
никакой задержки нет! Списать эту задержку на тормоза системы при выполнении команды я не могу,
т.к. ничего сложного там нет, да и всё работает нормально.

Вот процедура чтения буфера:

procedure TInput.ReadKeysBuffer;
var  didod : Array [0..BUFF_SIZE - 1] of TDIDEVICEOBJECTDATA;
     dwElements : DWORD;
     i : DWORD;
     hRet : HRESULT;
     k : shortint;
begin
if Keyboard = nil then
begin
 Log.Add("!!! Keyboard = nil");
 Exit;
end;

hRet := Keyboard.GetDeviceData (SizeOf(TDIDEVICEOBJECTDATA), @didod, dwElements, 0);
if Failed (hRet) then
begin
 hRet := Keyboard.Acquire;
 while hRet = DIERR_INPUTLOST do hRet := Keyboard.Acquire;
end;

if dwElements <> 0 then
for i := 0 to dwElements - 1 do
 begin
  if didod[i].dwData and $80 <> 0  then //клавиша нажата
   begin
 
    команды

   end
    else //клавиша отжата
     begin

     команды

     end;
 end;
end;


 
cyborg ©   (2004-07-22 18:07) [1]

Может это долго идёт, получить не может:

while hRet = DIERR_INPUTLOST do hRet := Keyboard.Acquire;



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

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
1-1099231595
Валерий
2004-10-31 17:06
2004.11.14
Application.Terminate;


14-1098448011
Qwest
2004-10-22 16:26
2004.11.14
Задачи.


3-1097500832
Zif
2004-10-11 17:20
2004.11.14
Как поместить картинку из БД Access на рабочий стол?


1-1099343328
ospa
2004-11-02 00:08
2004.11.14
как перехватить нажатие клавиш на клавиатуре?


3-1098077984
Draught
2004-10-18 09:39
2004.11.14
Прикрепление таблицы (JOIN)