home *** CD-ROM | disk | FTP | other *** search
/ Delphi 4 Bible / Delphi_4_Bible_Tom_Swan_IDG_Books_1998.iso / source / KEYCOUNT / MAIN.PAS < prev   
Pascal/Delphi Source File  |  1998-04-04  |  1KB  |  67 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, SysUtils, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, ExtCtrls, StdCtrls;
  8.  
  9. type
  10.   TMainForm = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Timer1: TTimer;
  14.     procedure FormCreate(Sender: TObject);
  15.     procedure FormKeyDown(Sender: TObject; var Key: Word;
  16.       Shift: TShiftState);
  17.     procedure FormKeyUp(Sender: TObject; var Key: Word;
  18.       Shift: TShiftState);
  19.     procedure Timer1Timer(Sender: TObject);
  20.   private
  21.     { Private declarations }
  22.     Count: Integer;
  23.     KeyPressed: Word;
  24.   public
  25.     { Public declarations }
  26.   end;
  27.  
  28. var
  29.   MainForm: TMainForm;
  30.  
  31. implementation
  32.  
  33. {$R *.DFM}
  34.  
  35. procedure TMainForm.FormCreate(Sender: TObject);
  36. begin
  37.   Count := 0;
  38. end;
  39.  
  40. procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
  41.   Shift: TShiftState);
  42. begin
  43.   if ((Key = vk_up) or (Key = vk_down)) then
  44.   begin
  45.     KeyPressed := Key;
  46.     Timer1.Enabled := True;
  47.   end;
  48. end;
  49.  
  50. procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word;
  51.   Shift: TShiftState);
  52. begin
  53.   Timer1.Enabled := False;
  54. end;
  55.  
  56. procedure TMainForm.Timer1Timer(Sender: TObject);
  57. begin
  58.   if KeyPressed = vk_up then
  59.     Inc(Count)
  60.   else if KeyPressed = vk_down then
  61.     Dec(Count);
  62.   Label1.Caption := IntToStr(Count);
  63. end;
  64.  
  65. end.
  66.  
  67.