Главная страница
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.091 c
15-1156740957
Rouse_
2006-08-28 08:55
2006.09.17
Петруха с ДР Тебя !!!


2-1156749072
shake
2006-08-28 11:11
2006.09.17
выборка из dbgrid


11-1130388459
Trubis
2005-10-27 08:47
2006.09.17
Ещё вопросы (надеюсь последние) по ListView


6-1146156217
VeB
2006-04-27 20:43
2006.09.17
Загрузить *.jpg


3-1152996121
Krants
2006-07-16 00:42
2006.09.17
Транспонировать записи(SQL)