home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / turbopas / pstui100.zip / KEYDEF.PAS < prev    next >
Pascal/Delphi Source File  |  1993-03-12  |  5KB  |  222 lines

  1. {
  2.  
  3.                                                       ╔══════════════════╗
  4.                                                       ║   Special Key    ║
  5.                                                       ║   Defines Unit   ║
  6.                                                       ║    Rev. 1.00     ║
  7.                                                       ╚══════════════════╝
  8.  
  9. }
  10.  
  11. {$F-} {$O-} {$A+} {$G-}
  12. {$V-} {$B-} {$X-} {$N+} {$E+}
  13.  
  14. {$I FINAL.PAS}
  15.  
  16. {$IFDEF FINAL}
  17.   {$I-} {$R-}
  18.   {$D-} {$L-} {$S-}
  19. {$ENDIF}
  20.  
  21. Unit KeyDef;
  22.  
  23. Interface
  24.  
  25. Const
  26.   Key_Alt      = #249;
  27.   Key_Shift    = #248;
  28.   Key_Ctrl     = #247;
  29.   Key_Up       = #246;
  30.   Key_Down     = #245;
  31.   Key_Left     = #244;
  32.   Key_Right    = #243;
  33.   Key_Home     = #242;
  34.   Key_PgUp     = #241;
  35.   Key_PgDn     = #240;
  36.   Key_End      = #239;
  37.   Key_Ins      = #238;
  38.   Key_Del      = #237;
  39.   Key_Tab      = #236;
  40.   Key_Enter    = #235;
  41.   Key_Esc      = #234;
  42.   Key_F12      = #233;
  43.   Key_F11      = #232;
  44.   Key_F10      = #231;
  45.   Key_F9       = #230;
  46.   Key_F8       = #229;
  47.   Key_F7       = #228;
  48.   Key_F6       = #227;
  49.   Key_F5       = #226;
  50.   Key_F4       = #225;
  51.   Key_F3       = #224;
  52.   Key_F2       = #223;
  53.   Key_F1       = #222;
  54.   Key_Back     = #221;
  55.   Key_None     = #220;
  56.  
  57.   Mouse_Only            = #200;
  58.   Mouse_SlideBarVert    = #199;
  59.   Mouse_SlideButtonVert = #198;
  60.   Mouse_SlideBarHorz    = #197;
  61.   Mouse_SlideButtonHorz = #196;
  62.  
  63. Function SpecialCode (HeldKey, MainKey:Char):Boolean;
  64. Function KeyCode     (HeldKey, MainKey:Char):Char;
  65.  
  66. Implementation
  67.  
  68. Function SpecialCode(HeldKey, MainKey:Char):Boolean;
  69.  
  70. Var
  71.   Temp:Boolean;
  72.  
  73. Begin
  74.   Temp:=False;
  75.  
  76.   If HeldKey = Mouse_Only Then Temp:=True;
  77.   If HeldKey = Key_Alt Then Temp:=True;
  78.   If (HeldKey = Key_Ctrl) Then
  79.     If (MainKey in ['A'..'Z','6','-','\',Key_Back]) Then
  80.       Temp:=False
  81.     Else
  82.       Temp:=True;
  83.   If MainKey in [Key_F1..Key_F10, Key_Del..Key_Up] Then Temp:=True;
  84.  
  85.   SpecialCode:=Temp;
  86. End;
  87.  
  88. Function KeyCode(HeldKey, MainKey:Char):Char;
  89.  
  90. Var
  91.   Temp:Char;
  92.  
  93. Begin
  94.   Temp:=#255;
  95.   If HeldKey=Key_None Then
  96.   Begin
  97.     Case MainKey Of
  98.       Key_Tab   :Temp:=#9;
  99.       Key_Enter :Temp:=#13;
  100.       Key_Esc   :Temp:=#27;
  101.       ' '..'`'  :Temp:=MainKey;
  102.       Key_Ins   :Temp:='R';
  103.       Key_Del   :Temp:='S';
  104.       Key_Home  :Temp:='G';
  105.       Key_Up    :Temp:='H';
  106.       Key_PgUp  :Temp:='I';
  107.       Key_Left  :Temp:='K';
  108.       Key_Right :Temp:='M';
  109.       Key_End   :Temp:='O';
  110.       Key_Down  :Temp:='P';
  111.       Key_PgDn  :Temp:='Q';
  112.       Key_F1..
  113.         Key_F10 :Temp:=Chr(Ord(MainKey)-Ord(Key_F1)+59);
  114.     End;
  115.   End
  116.   Else
  117.   If HeldKey=Key_Ctrl Then
  118.   Begin
  119.     Case MainKey Of
  120.       'Q'       :Temp:=#17;
  121.       'W'       :Temp:=#23;
  122.       'E'       :Temp:=#5;
  123.       'R'       :Temp:=#18;
  124.       'T'       :Temp:=#20;
  125.       'Y'       :Temp:=#25;
  126.       'U'       :Temp:=#21;
  127.       'I'       :Temp:=#9;
  128.       'O'       :Temp:=#15;
  129.       'P'       :Temp:=#16;
  130.       '['       :Temp:=#27;
  131.       ']'       :Temp:=#29;
  132.       'A'       :Temp:=#1;
  133.       'S'       :Temp:=#19;
  134.       'D'       :Temp:=#4;
  135.       'F'       :Temp:=#6;
  136.       'G'       :Temp:=#7;
  137.       'H'       :Temp:=#8;
  138.       'J'       :Temp:=#10;
  139.       'K'       :Temp:=#11;
  140.       'L'       :Temp:=#12;
  141.       'Z'       :Temp:=#26;
  142.       'X'       :Temp:=#24;
  143.       'C'       :Temp:=#3;
  144.       'V'       :Temp:=#22;
  145.       'B'       :Temp:=#2;
  146.       'N'       :Temp:=#14;
  147.       'M'       :Temp:=#13;
  148.       '2'       :Temp:=#3;
  149.       '6'       :Temp:=#30;
  150.       '-'       :Temp:=#31;
  151.       '\'       :Temp:=#28;
  152.       Key_Back  :Temp:=#127;
  153.  
  154.       Key_F1..
  155.         Key_F10 :Temp:=Chr(Ord(MainKey)-Ord(Key_F1)+94);
  156.  
  157.       Key_Ins   :Temp:=#4;
  158.       Key_Del   :Temp:=#6;
  159.       Key_Home  :Temp:=#119;
  160.       Key_PgUp  :Temp:=#132;
  161.       Key_Left  :Temp:=#115;
  162.       Key_Right :Temp:=#116;
  163.       Key_End   :Temp:=#117;
  164.       Key_PgDn  :Temp:=#118;
  165.     End;
  166.   End
  167.   Else
  168.   If HeldKey=Key_Alt  Then
  169.   Begin
  170.     Case MainKey Of
  171.       'Q'       :Temp:=#16;
  172.       'W'       :Temp:=#17;
  173.       'E'       :Temp:=#18;
  174.       'R'       :Temp:=#19;
  175.       'T'       :Temp:=#20;
  176.       'Y'       :Temp:=#21;
  177.       'U'       :Temp:=#22;
  178.       'I'       :Temp:=#23;
  179.       'O'       :Temp:=#24;
  180.       'P'       :Temp:=#25;
  181.       'A'       :Temp:=#30;
  182.       'S'       :Temp:=#31;
  183.       'D'       :Temp:=#32;
  184.       'F'       :Temp:=#33;
  185.       'G'       :Temp:=#34;
  186.       'H'       :Temp:=#35;
  187.       'J'       :Temp:=#36;
  188.       'K'       :Temp:=#37;
  189.       'L'       :Temp:=#38;
  190.       'Z'       :Temp:=#44;
  191.       'X'       :Temp:=#45;
  192.       'C'       :Temp:=#46;
  193.       'V'       :Temp:=#47;
  194.       'B'       :Temp:=#48;
  195.       'N'       :Temp:=#49;
  196.       'M'       :Temp:=#50;
  197.       '1'..'9'  :Temp:=Chr(Ord(MainKey)-Ord('1')+120);
  198.       '0'       :Temp:=#129;
  199.       '-'       :Temp:=#130;
  200.       '='       :Temp:=#131;
  201.       Key_F1..
  202.         Key_F10 :Temp:=Chr(Ord(MainKey)-Ord(Key_F1)+104);
  203.     End;
  204.   End
  205.   Else
  206.   If HeldKey=Mouse_Only Then
  207.   Begin
  208.     Case MainKey Of
  209.       Mouse_SlideBarVert     :Temp:=#249;
  210.       Mouse_SlideButtonVert  :Temp:=#248;
  211.       Mouse_SlideBarHorz     :Temp:=#247;
  212.       Mouse_SlideButtonHorz  :Temp:=#246;
  213.     End;
  214.   End;
  215.  
  216.   KeyCode:=Temp;
  217. End;
  218.  
  219. End.
  220.  
  221. { Copyright 1993, Michael Gallias }
  222.