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

Вниз

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

 
mox ©   (2003-06-19 22:56) [0]


Как можно по таймеру, с помощью GetAsyncKeyState, проверять через
определенное время, какая нажата клавиша. Пробовал, но у меня определяется
только первая по счету нажатая клавиша.


 
icWasya ©   (2003-06-20 09:56) [1]



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
LabelQ: TLabel;
LabelW: TLabel;
LabelE: TLabel;
LabelR: TLabel;
LabelT: TLabel;
LabelY: TLabel;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
const
S_Q_Up = "кнопка отпущена";
S_Q_Dn = "кнопка нажата";
S_Dn = "кнопка давно нажата";
S_Up = "кнопка давно отпущена";
S_Q = "учи матчасть";


procedure KeyState(L:TLabel;K:Char);
var W:Word;
S:String;
begin

W:=GetAsyncKeyState(Ord(K));

if W = $8001 then S := S_Q_Dn else
if W = $0001 then S := S_Q_Up else
if W = $8000 then S := S_Dn else
if W = $0000 then S := S_Up else
S := S_Q ;

L.Caption:=Format("%s %s %.4x",[S, K, W] );


end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
KeyState(LabelQ,"Q");
KeyState(LabelW,"W");
KeyState(LabelE,"E");
KeyState(LabelR,"R");
KeyState(LabelT,"T");
KeyState(LabelY,"Y");
end;

end.



object Form1: TForm1
Left = 421
Top = 278
Width = 337
Height = 224
Caption = "Test KeyState"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object LabelQ: TLabel
Left = 72
Top = 32
Width = 34
Height = 13
Caption = "LabelQ"
end
object LabelW: TLabel
Left = 72
Top = 56
Width = 37
Height = 13
Caption = "LabelW"
end
object LabelE: TLabel
Left = 72
Top = 80
Width = 33
Height = 13
Caption = "LabelE"
end
object LabelR: TLabel
Left = 72
Top = 104
Width = 34
Height = 13
Caption = "LabelR"
end
object LabelT: TLabel
Left = 72
Top = 128
Width = 33
Height = 13
Caption = "LabelT"
end
object LabelY: TLabel
Left = 72
Top = 152
Width = 33
Height = 13
Caption = "LabelY"
end
object Timer1: TTimer
OnTimer = Timer1Timer
Left = 160
Top = 40
end
end



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
8-7556
ak75
2003-03-21 10:37
2003.07.03
---|Ветка была без названия|---


1-7448
BJValentine
2003-06-23 15:16
2003.07.03
Начальное значение переменной


8-7552
MegaLexx
2003-03-20 20:07
2003.07.03
Скины вручную


14-7672
Palladin
2003-06-16 21:57
2003.07.03
подскажите ссылку на


14-7602
Aga
2003-06-18 00:10
2003.07.03
Opera 7