Главная страница
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.021 c
14-7671
Pesh
2003-06-14 20:21
2003.07.03
Как узнать, что текстовый файл не пуст?


3-7327
Lord Vader
2003-06-10 07:02
2003.07.03
Автокалькуляция в связанных таблицах


14-7608
Jumbo
2003-06-17 04:53
2003.07.03
Command line


14-7645
Дмитрий К.К.
2003-06-16 05:59
2003.07.03
Именинники 16 июня


1-7410
picaroon
2003-06-23 09:34
2003.07.03
Печать...