Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-7691
Кен
2003-06-17 03:29
2003.07.03
На чём написан Дельфи. На Си или на Дельфи ?


7-7726
Ihor Osov'yak
2003-04-21 20:15
2003.07.03
DeviceIoControl,METHOD_BUFFERED и данные по поинтеру Win32,


14-7644
Zergling
2003-06-16 09:38
2003.07.03
c2pas


1-7509
Leech
2003-06-21 13:59
2003.07.03
Delphi VI: fsMDIForm, fsMDIChild, Action := caFree...


9-7286
Nimda
2002-12-24 11:27
2003.07.03
Новый тип карты.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский