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

Вниз

KeyDown   Найти похожие ветки 

 
Nikss   (2006-08-25 09:58) [0]

Здравствуйте! Подскажите, пожалуйста, ответ на такой глупый вопрос: у меня есть процедура FormKeyDown, в которой в случае нажатия определенной клавиши обрабатывается соответствующее событие. Мне нужно в другой процедуре записать такое условие: "пока ни одна из предусмотренных клавиш не нажата, выполнять такое-то действие". Как это записать?


 
Ketmar ©   (2006-08-25 10:11) [1]

игру пишем?
вариантов много.
а) изменить логику работы программы;
б) appEvents.OnIdle();
в) таймер.
пока хватит.


 
Сергей М. ©   (2006-08-25 10:15) [2]

var SomeKeyPressed: Boolean; //глоб.переменная

в обработчике FormKeyDown:

if Key := ... then SomeKeyPressed := True;
..

в процедуре:

while not (Application.Terminated or SomeKeyPressed) do begin
 DoSomething;
 Application.ProcessMessages;
end;
SomeKeyPressed := False;


 
DevilDevil ©   (2006-08-25 16:29) [3]

KeyArray : array[0..255] of boolean;

OnCreate:
var i : integer;
begin
  for i := 0 to 255 do KeyArray[i] := false;
end;

OnKeyDown:
KeyArray[Key] := true;

OnKeyUp:
KeyArray[Key] := false;

function IsKeyPressed(Key : byte) : boolean;
begin
 Result := KeyArray[Key];
end;


Кидаешь на форму компонент ApplicationEvents

По событию OnIdle пишешь:

begin
   
   if KeyPressed(VK_ESCAPE) then Application.Terminate;

   if KeyPressed(VK_LEFT) then ; //переместить игрока влев
   if KeyPressed(VK_RIGHT) then ; //переместить игрока вправо
  // и т.д.
end;


 
DevilDevil ©   (2006-08-25 16:51) [4]

в процедуре OnIdle сразу после begin надо написать Done := false;



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

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

Наверх




Память: 0.47 MB
Время: 0.036 c
2-1157027140
Sesh
2006-08-31 16:25
2006.09.17
Преобразование в char


15-1156150371
Pazitron_Brain
2006-08-21 12:52
2006.09.17
Как придеать спутниковую тарелку?


3-1152278195
antoxa2005
2006-07-07 17:16
2006.09.17
Как можно получить драйвер Gemini ODBC?


6-1145525827
Dadd
2006-04-20 13:37
2006.09.17
Как Убрать alert() из JavaScript в TwebBrowser и фреймах ?


2-1156446999
GunGarry
2006-08-24 23:16
2006.09.17
ListBox