Главная страница
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.052 c
3-1152880058
danja12
2006-07-14 16:27
2006.09.17
переименовать поле в dbf-файле


2-1156679246
Randomix
2006-08-27 15:47
2006.09.17
Видео Чат


2-1156495297
Чапаев
2006-08-25 12:41
2006.09.17
SizeOf(C++ enum)?


1-1154927477
Spectrum2
2006-08-07 09:11
2006.09.17
TNMUUProcessor


1-1154095062
Still Swamp
2006-07-28 17:57
2006.09.17
Как бы запретить изменение TComboBox.Text?