Board index » delphi » Trapping PgUp/PgDn

Trapping PgUp/PgDn

Happy newyear (almost/yet?) everyone,

I'm trying to trap the PgUp and PgDn keys, like:

procedure TFrmQRPreview.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  IF Key = VK_UP THEN
    BEGIN
      IF ssCtrl IN Shift THEN GoFirstPage
                         ELSE GoPrevPage;
      Key := 0;
      Exit;
    END;
  IF Key = VK_DOWN THEN
    BEGIN
      IF ssCtrl IN Shift THEN GoLastPage
                         ELSE GoNextPage;
      Key := 0;
    END;
end;  

but (!) there are no reference to VK_ constant like VK_PGUP in the
Windows units (I used the object browser to inspect it).

I must be missing something obvious here? It should be possible to trap
those keys!

Thanks,
Jan

-----------------------------------------------------------------------
Jan Doggen / Masters Software
mass...@xs4all.nl
Leiden, The Netherlands
-----------------------------------------------------------------------

 

Re:Trapping PgUp/PgDn


  They are called:

VK_PRIOR  =  PAGE UP key
VK_NEXT   =  PAGE DOWN key

Here is the complete list:
Symbolic constant name  Value (hexadecimal)     Mouse or keyboard equivalent
VK_LBUTTON      01      Left mouse button
VK_RBUTTON      02      Right mouse button
VK_CANCEL       03      Control-break processing
VK_MBUTTON      04      Middle mouse button (three-button mouse)
 ?                     05-07   Undefined
VK_BACK 08      BACKSPACE key
VK_TAB                  09      TAB key
 ?                     0A-0B   Undefined
VK_CLEAR        0C      CLEAR key
VK_RETURN       0D      ENTER key
 ?                     0E-0F   Undefined
VK_SHIFT        10      SHIFT key
VK_CONTROL      11      CTRL key
VK_MENU 12      ALT key
VK_PAUSE        13      PAUSE key
VK_CAPITAL      14      CAPS LOCK key
 ?                     15-19   Reserved for Kanji systems
 ?                     1A      Undefined
VK_ESCAPE       1B      ESC key
 ?                     1C-1F   Reserved for Kanji systems
VK_SPACE        20      SPACEBAR
VK_PRIOR        21      PAGE UP key
VK_NEXT 22      PAGE DOWN key
VK_END                  23      END key
VK_HOME 24      HOME key
VK_LEFT                 25      LEFT ARROW key
VK_UP                   26      UP ARROW key
VK_RIGHT        27      RIGHT ARROW key
VK_DOWN 28      DOWN ARROW key
VK_SELECT       29      SELECT key
 ?                     2A      Original equipment manufacturer (OEM) specific
VK_EXECUTE      2B      EXECUTE key
VK_SNAPSHOT     2C      PRINT SCREEN key for Windows 3.0 and later
VK_INSERT       2D      INS key
VK_DELETE       2E      DEL key
VK_HELP 2F      HELP key
VK_0                    30      0 key
VK_1                     31     1 key
VK_2    32      2 key
VK_3    33      3 key
VK_4    34      4 key
VK_5    35      5 key
VK_6    36      6 key
VK_7    37      7 key
VK_8    38      8 key
VK_9    39      9 key
 ?     3A-40   Undefined
VK_A    41      A key
VK_B    42      B key
VK_C    43      C key
VK_D    44      D key
VK_E    45      E key
VK_F    46      F key
VK_G    47      G key
VK_H    48      H key
VK_I    49      I key
VK_J    4A      J key
VK_K    4B      K key
VK_L    4C      L key
VK_M    4D      M key
VK_N    4E      N key
VK_O    4F      O key
VK_P    50      P key
VK_Q    51      Q key
VK_R    52      R key
VK_S    53      S key
VK_T    54      T key
VK_U    55      U key
VK_V    56      V key
VK_W    57      W key
VK_X    58      X key
VK_Y    59      Y key
VK_Z    5A      Z key
VK_LWIN 5B      Left Windows key (Microsoft Natural Keyboard)
VK_RWIN 5C      Right Windows key (Microsoft Natural Keyboard)
VK_APPS 5D      Applications key (Microsoft Natural Keyboard)
 ?     5E-5F   Undefined
VK_NUMPAD0      60      Numeric keypad 0 key
VK_NUMPAD1      61      Numeric keypad 1 key
VK_NUMPAD2      62      Numeric keypad 2 key
VK_NUMPAD3      63      Numeric keypad 3 key
VK_NUMPAD4      64      Numeric keypad 4 key
VK_NUMPAD5      65      Numeric keypad 5 key
VK_NUMPAD6      66      Numeric keypad 6 key
VK_NUMPAD7      67      Numeric keypad 7 key
VK_NUMPAD8      68      Numeric keypad 8 key
VK_NUMPAD9      69      Numeric keypad 9 key
VK_MULTIPLY     6A      Multiply key
VK_ADD  6B      Add key
VK_SEPARATOR    6C      Separator key
VK_SUBTRACT     6D      Subtract key
VK_DECIMAL      6E      Decimal key
VK_DIVIDE       6F      Divide key
VK_F1   70      F1 key
VK_F2   71      F2 key
VK_F3   72      F3 key
VK_F4   73      F4 key
VK_F5   74      F5 key
VK_F6   75      F6 key
VK_F7   76      F7 key
VK_F8   77      F8 key
VK_F9   78      F9 key
VK_F10  79      F10 key
VK_F11  7A      F11 key
VK_F12  7B      F12 key
VK_F13  7C      F13 key
VK_F14  7D      F14 key
VK_F15  7E      F15 key
VK_F16  7F      F16 key
VK_F17  80H     F17 key
VK_F18  81H     F18 key
VK_F19  82H     F19 key
VK_F20  83H     F20 key
VK_F21  84H     F21 key
VK_F22  85H     F22 key
VK_F23  86H     F23 key
VK_F24  87H     F24 key
 ?     88-8F   Unassigned
VK_NUMLOCK      90      NUM LOCK key
VK_SCROLL       91      SCROLL LOCK key
 ?     92-B9   Unassigned
 ?     BA-C0   OEM specific
 ?     C1-DA   Unassigned
 ?     DB-E4   OEM specific
 ?     E5      Unassigned
 ?     E6      OEM specific
 ?     E7-E8   Unassigned
 ?     E9-F5   OEM specific
VK_ATTN F6      Attn key
VK_CRSEL        F7      CrSel key
VK_EXSEL        F8      ExSel key
VK_EREOF        F9      Erase EOF key
VK_PLAY FA      Play key
VK_ZOOM FB      Zoom key
VK_NONAME       FC      Reserved for future use.
VK_PA1  FD      PA1 key
VK_OEM_CLEAR    FE      Clear key

Quote
Jan Doggen wrote:

> Happy newyear (almost/yet?) everyone,

> I'm trying to trap the PgUp and PgDn keys, like:

> procedure TFrmQRPreview.FormKeyUp(Sender: TObject; var Key: Word;
>   Shift: TShiftState);
> begin
>   IF Key = VK_UP THEN
>     BEGIN
>       IF ssCtrl IN Shift THEN GoFirstPage
>                          ELSE GoPrevPage;
>       Key := 0;
>       Exit;
>     END;
>   IF Key = VK_DOWN THEN
>     BEGIN
>       IF ssCtrl IN Shift THEN GoLastPage
>                          ELSE GoNextPage;
>       Key := 0;
>     END;
> end;

> but (!) there are no reference to VK_ constant like VK_PGUP in the
> Windows units (I used the object browser to inspect it).

> I must be missing something obvious here? It should be possible to trap
> those keys!

> Thanks,
> Jan

> -----------------------------------------------------------------------
> Jan Doggen / Masters Software
> mass...@xs4all.nl
> Leiden, The Netherlands
> -----------------------------------------------------------------------

Other Threads