home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161b.iso / handson / archive / Issue154 / delphi / altkey / AK.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-04-23  |  1.2 KB  |  62 lines

  1. unit ak;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
  7.  
  8. type
  9.   TForm1 = class(TForm)
  10.     procedure FormKeyDown(Sender: TObject; var Key: Word;
  11.       Shift: TShiftState);
  12.     procedure FormKeyUp(Sender: TObject; var Key: Word;
  13.       Shift: TShiftState);
  14.   private
  15.     { Private declarations }
  16.   public
  17.     { Public declarations }
  18.   end;
  19.  
  20. var
  21.   Form1: TForm1;
  22.  
  23. implementation
  24.  
  25. {$R *.DFM}
  26.  
  27.  
  28. procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  29.   Shift: TShiftState);
  30. var
  31.    s : string;
  32. begin
  33.    s := '';
  34.    if ssShift in Shift then s := 'SHIFT-';
  35.    if ssAlt in Shift then
  36.    begin
  37.       s := s + 'ALT-';
  38.       if Key = Ord('X') then
  39.          if MessageDlg('Are you sure you want to quit?',
  40.                mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  41.             Close;
  42.    end;
  43.    if ssCtrl in Shift then s := s + 'CTRL';
  44.    Caption := s;
  45.  
  46.  
  47. end;
  48.  
  49. procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  50.   Shift: TShiftState);
  51. var
  52.    s : string;
  53. begin
  54.    s := '';
  55.    if ssShift in Shift then s := 'SHIFT-';
  56.    if ssAlt in Shift then s := s + 'ALT-';
  57.    if ssCtrl in Shift then s := s + 'CTRL';
  58.    Caption := s;
  59. end;
  60.  
  61. end.
  62.