Главная страница
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.033 c
15-1156258192
pasha_golub
2006-08-22 18:49
2006.09.17
Или лыжи не едут, или что-то не так


3-1152312861
S@shka
2006-07-08 02:54
2006.09.17
Можно ли оценить размер БД


2-1156659780
andy_hs
2006-08-27 10:23
2006.09.17
сделать программу невидимой (службой)


15-1156842507
ToTo
2006-08-29 13:08
2006.09.17
Интернет поиск


2-1156415598
XTD
2006-08-24 14:33
2006.09.17
Присвоить знач. при OnCreate form1, form2.label1.Text:=’12’(ошибк