forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Отлов нажатий клавиш (http://forum.boolean.name/showthread.php?t=6054)

SkyFox 26.06.2008 22:59

Отлов нажатий клавиш
 
вобщем програмлю второй день, над кодом прошу сильно не смеяться и ногами не пинать :)
как этот кусок кода сделать более правильным?
в этом случае мой SE клавишу 1 ловит практически всегда, клавишу 2 - 5 из 10 раз , клавишу 0, 2 из 10.
Код:

while true = true  do
begin
if getKeyClicked = KE_KEY1 then
  begin
  b := socket.write(72);
  repaint;
  end;
if getKeyClicked = KE_KEY2 then
  begin
  b := socket.write(80);
  repaint;
  end;
if getKeyClicked = KE_KEY0 then
  begin
  socket.close;
  delay(1000);
  halt;
  end;
 end;


ViNT 27.06.2008 00:03

Ответ: Отлов нажатий клавиш
 
Так будет лучше:
Код:

var
 K:Integer;
while true  do
begin
 K:=GetKeyClicked;
 if K = KE_KEY1 then
  b := socket.write(72);
 if K= KE_KEY2 then
  b := socket.write(80);
 if K = KE_KEY0 then
 begin
  socket.close;
  delay(1000);
  halt;
 end;
 Delay(200);
end;

Если ничего не рисуется на экране, то repaint'ы не нужны.

SkyFox 27.06.2008 09:42

Ответ: Отлов нажатий клавиш
 
Цитата:

Сообщение от ViNT (Сообщение 81460)
Так будет лучше:

Если ничего не рисуется на экране, то repaint'ы не нужны.

спасибо, дома буду, попробую. у меня там еще был drawtext, чтобы видеть клавиши нажатые, их убрал а repaint забыл)


Часовой пояс GMT +4, время: 00:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot