home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / AMOUSE10.ZIP / ARMOUSE.DOC next >
Encoding:
Text File  |  1992-08-16  |  15.0 KB  |  272 lines

  1.  
  2.  
  3.               ██████████████████████████████████████
  4.           ██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████
  5.       ██████▒▒▒▒▒        Armouse 1.00           ▒▒▒▒▒▒██████
  6.  ███████▒▒▒▒▒▒░░░    MOUSE Handling Toolbox     ░░░░▒▒▒▒▒▒██████
  7.  ███████▒▒▒▒▒▒░░░      Turbo Pascal 6.0         ░░░░▒▒▒▒▒▒██████
  8.  ███████▒▒▒▒▒▒░░░                               ░░░░▒▒▒▒▒▒██████
  9.  ███████▒▒▒▒▒▒░░░  Includes:                    ░░░░▒▒▒▒▒▒██████
  10.  ███████▒▒▒▒▒▒░░░                               ░░░░▒▒▒▒▒▒██████
  11.  ███████▒▒▒▒▒▒░░░  - convenient program         ░░░░▒▒▒▒▒▒██████
  12.  ███████▒▒▒▒▒▒░░░    interfface;                ░░░░▒▒▒▒▒▒██████
  13.  ███████▒▒▒▒▒▒░░░  - GRAPHIC Mouse cursor       ░░░░▒▒▒▒▒▒██████
  14.  ███████▒▒▒▒▒▒░░░    in TEXT mode for EGA       ░░░░▒▒▒▒▒▒██████
  15.  ███████▒▒▒▒▒▒░░░    VGA adapters (a'la NORTON  ░░░░▒▒▒▒▒▒██████
  16.  ███████▒▒▒▒▒▒░░░    Utilities 6.0).            ░░░░▒▒▒▒▒▒██████
  17.  ███████▒▒▒▒▒▒░░░                               ░░░░▒▒▒▒▒▒██████
  18.  ███████▒▒▒▒▒▒░░░   Copyright 1992              ░░░░▒▒▒▒▒▒██████
  19.  ███████▒▒▒▒▒▒░░░     Igor Evsikov,             ░░░░▒▒▒▒▒▒██████
  20.  ███████▒▒▒▒▒▒░░░     Sergey Shmakov and        ░░░░▒▒▒▒▒▒██████
  21.  ███████▒▒▒▒▒▒░░░     Pete Sychov               ░░░░▒▒▒▒▒▒██████
  22.  ███████▒▒▒▒▒▒░░░                               ░░░░▒▒▒▒▒▒██████
  23.       ██████▒▒▒▒▒         August 1992           ▒▒▒▒▒▒██████
  24.          ███████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████
  25.              ██████████████████████████████████████
  26.  
  27.  
  28.   Armouse is a Turbo Pascal 6.0 mouse handling unit for
  29.   application programs. In comparison with another units this
  30.   one gives you advantages:
  31.  
  32.   - simple and convenient program interface. Most units (e. g.
  33.     Turbo Professional TPMOUSE) simply gives you Pascal interface
  34.     to mouse support driver interrupt INT 33. This is a powerful
  35.     tool but rather complicated and not transparent  one.  This
  36.     unit provides a set of function to handle MOUSE and KEYBOARD
  37.     events in a similar way (as in MS Windows). From our point of
  38.     view simplicity and convenience of the event driven approach
  39.     well compensate a slight loss of flexibility compared to the
  40.     custom INT 33 based technique.
  41.  
  42.   - for EGA or VGA adapters you may use GRAPHIC mouse cursor
  43.     (a'la NORTON UTILITIES 6.0) in TEXT videomode. A variety of
  44.     the mouse cursor shapes is supplied. When selected, the
  45.     graphic mouse cursor _smoothly_ moves through the screen.
  46.  
  47.     AMOUSE10.ZIP contains :
  48.  
  49.   - ARMOUSE.TPU
  50.   - ARMOUSE.DOC with interface part of unit
  51.   - DEMO.PAS
  52.   - DEMO.INC
  53.   - DEMO.EXE
  54.   - ARMOUSE.REG
  55.  
  56.   Registered  users will receive source code for Armouse.tpu
  57.   through e-mail.
  58.  
  59.     Demo SYNTAX:
  60.         >DEMO [/b] [/n] [/e]
  61.  
  62.         where
  63.         /b - black and white mode on
  64.         /n - normal (not grathic) mouse cursor for VGA/EGA
  65.         /e - switch to EGA mode with VGA adapter
  66.  
  67. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  68. ░░░███████████████████████████████████████████████████████████░░░
  69. ░░░███████████████████Technical Support███████████████████████░░░
  70. ░░░███████████████████████████████████████████████████████████░░░
  71. ░░░█  Questions and comments can send for me on then e-mail  █░░░
  72. ░░░█               evsikov@lcta.jinr.dubna.su                █░░░
  73. ░░░███████████████████████████████████████████████████████████░░░
  74. ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  75.  
  76.       This  program  is  being  distributed  under the Shareware
  77. concept.
  78.  
  79.       If you like this program and use it, a registration fee of
  80. $ 5.00 is required for non-profit users. Commercial users
  81. registration fee of $ 10.00. Registered  users will receive
  82. source code for Armouse.tpu through e-mail. See the file
  83. ARMOUSE.REG.  Registration also includes free technical support,
  84. within the limitations of my time and resources.
  85.  
  86.       This registration fee is  intended to cover my personal
  87. time  and  expense  in  developing, documenting, distributing,
  88. and supporting  this toolbox.
  89.  
  90.  
  91.             Write to:
  92.  
  93.                         Igor I. Evsikov
  94.                         LCTA, JINR, (Dubna)
  95.                         P.O. Box 79, Head Post Office
  96.                         Moscow 101000 Russia
  97.  
  98.             E-mail:     evsikov@lcta5.jinr.dubna.su
  99.  
  100. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  101. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Interface Listing for Armouse.pas▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  102. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  103.  
  104. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  105. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒UNIT Armouse.pas▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  106. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  107. {$R-,L-,D-,S-,F-,V-,A+,O+,I+,B-,E-,N-,G-,X-}
  108.  
  109. unit Armouse;
  110.  
  111. interface
  112.  
  113. uses crt,dos;
  114.  
  115.  
  116. Type
  117.  
  118.  InsideProc = procedure;
  119.                                         {████████████████████████████████████}
  120.  imageArray = array[0..15] of byte;     {█ Pixel array for arrow images     █}
  121.                                         {████████████████████████████████████}
  122.  EventStatus = (No_Event, Left_Button,  {█ Mouse Status for all mouse       █}
  123.             Right_Button, Both_Button,  {████████████████████████████████████}
  124.     Center_Button, Left_Center_Button,  {█ Status for 3-buttons mouse       █}
  125.      Right_Center_Button, All3_Button,  {████████████████████████████████████}
  126.             KBD_Key, KBD_Special_Key);  {█ Keyboard Status                  █}
  127.                                         {████████████████████████████████████}
  128.  
  129.  ImageArrowName = (
  130.              NormalArrow, DragArrow,    {████████████████████████████████████}
  131.              DragArrowL,  DragArrowR,   {█ The names of mouse cursor images █}
  132.              ClockArrow,  HandArrow,    {████████████████████████████████████}
  133.              Hand1Arrow,  Clock2Arrow,
  134.              Hand2Arrow,  BigArrow,
  135.              SU29Arrow,   Hand3Arrow,
  136.              PencilArrow, FootArrow,
  137.              PlusArrow,   Big2Arrow,
  138.              SightArrow,  UserArrow);
  139.  
  140. const                                   {████████████████████████████████████}
  141.  NumberOfButtons : integer = 0;         {█The number of buttons             █}
  142.  AMouse          : boolean = false;     {█If False then standard cursor     █}
  143.  ClickTime       : integer = 9;         {█Double click time in timer ticks  █}
  144.  MouseReady      : boolean = false;     {█True if a mouse is installed      █}
  145.  SwitchToEGA     : boolean = false;     {█if True then VGA converted to EGA █}
  146.                                         {█mode for more smoothing moves     █}
  147. var                                     {████████████████████████████████████}
  148.  CurrentStatus   : EventStatus;         {█Who pressed now                   █}
  149.                                         {████████████████████████████████████}
  150.  
  151. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  152. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ MAIN PROCEDURES ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  153. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  154.  
  155.  
  156. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  157. {░░░░░░░░░░░░░░░░░░░░░} Procedure ReInitArrowMouse; {░░░░░░░░░░░░░░░░░░░░░░░░}
  158. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  159. {░░░██████████████████████████████████████████████████████████████████████░░░}
  160. {░░░█ Detect mouse driver, reinitialize Arrow Mouse, set Event  Handler, █░░░}
  161. {░░░█ init variables, select default Mouse Image etc.  AMouse  initiates █░░░}
  162. {░░░█ automatically, so this to use after DoneArrowMouse                 █░░░}
  163. {░░░██████████████████████████████████████████████████████████████████████░░░}
  164. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  165.  
  166. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  167. {░░░░░░░░░░░░░░░░░░░░░░░░░} function  GetEvent  {░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  168. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  169. {░░░░░░░░░░}(var Ch                     : Char;                    {░░░░░░░░░}
  170. {░░░░░░░░░░} var x                      : byte;                    {░░░░░░░░░}
  171. {░░░░░░░░░░} var y                      : byte;                    {░░░░░░░░░}
  172. {░░░░░░░░░░} UserRutineIfNotProcessed   : InSideProc;              {░░░░░░░░░}
  173. {░░░░░░░░░░} UserRutineIfButtonPressed  : InSideproc): EventStatus;{░░░░░░░░░}
  174. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  175. {░░░██████████████████████████████████████████████████████████████████████░░░}
  176. {░░░█ After any KEYBOARD or MOUSE event, Returns KBD/MOUSE Status,       █░░░}
  177. {░░░█ character under mouse cursor or from keyboard (ASCII or extended)  █░░░}
  178. {░░░█ position of mouse/KBD cursor. If there is no user routine, use     █░░░}
  179. {░░░█ PROCEDURE NothingDo, for example see DEMO.PAS...                   █░░░}
  180. {░░░██████████████████████████████████████████████████████████████████████░░░}
  181. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  182.  
  183. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  184. {░░░░░░░░░░░░░░░░░░░░░░} Procedure DoneArrowMouse; {░░░░░░░░░░░░░░░░░░░░░░░░░}
  185. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  186. {░░░██████████████████████████████████████████████████████████████████████░░░}
  187. {░░░█ Shutdowm Arrow mouse CORRECTLY. Use this procedure before exit to  █░░░}
  188. {░░░█ DOS or start child process                                         █░░░}
  189. {░░░██████████████████████████████████████████████████████████████████████░░░}
  190. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  191.  
  192.  
  193. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  194. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ADDITIONAL PROCEDURES ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  195. {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
  196.  
  197.  
  198. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  199. {░░░░░░░░░░░░░░░░░░░░░░░░░░} Procedure ShowArrow; {░░░░░░░░░░░░░░░░░░░░░░░░░░}
  200. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  201. {░░░██████████████████████████████████████████████████████████████████████░░░}
  202. {░░░█ Show the mouse cursor.                                             █░░░}
  203. {░░░██████████████████████████████████████████████████████████████████████░░░}
  204. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  205.  
  206. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  207. {░░░░░░░░░░░░░░░░░░░░░░░░░░} Procedure  HideArrow; {░░░░░░░░░░░░░░░░░░░░░░░░░}
  208. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  209. {░░░██████████████████████████████████████████████████████████████████████░░░}
  210. {░░░█ Hide the mouse.                                                    █░░░}
  211. {░░░██████████████████████████████████████████████████████████████████████░░░}
  212. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  213.  
  214. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  215. {░░░░░░░░░░░░░░░░░░░░░░} Function  WhereArrowX : byte; {░░░░░░░░░░░░░░░░░░░░░}
  216. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  217. {░░░██████████████████████████████████████████████████████████████████████░░░}
  218. {░░░█ Return current X coordinate for mouse                              █░░░}
  219. {░░░██████████████████████████████████████████████████████████████████████░░░}
  220. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  221.  
  222. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  223. {░░░░░░░░░░░░░░░░░░░░░░} Function  WhereArrowY : byte; {░░░░░░░░░░░░░░░░░░░░░}
  224. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  225. {░░░██████████████████████████████████████████████████████████████████████░░░}
  226. {░░░█ Return current Y coordinate for mouse.                             █░░░}
  227. {░░░██████████████████████████████████████████████████████████████████████░░░}
  228. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  229.  
  230. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  231. {░░░░░░░░░░░░░} Procedure GotoArrowXY( MouseX, MouseY : Byte); {░░░░░░░░░░░░░}
  232. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  233. {░░░██████████████████████████████████████████████████████████████████████░░░}
  234. {░░░█ Set mouse position.                                                █░░░}
  235. {░░░██████████████████████████████████████████████████████████████████████░░░}
  236. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  237.  
  238. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  239. {░░░░░} Procedure SelectNotPressedImage( NameOfImage : ImageArrowName); {░░░░}
  240. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  241. {░░░██████████████████████████████████████████████████████████████████████░░░}
  242. {░░░█ Select New notpressed mouse cursor image.                          █░░░}
  243. {░░░██████████████████████████████████████████████████████████████████████░░░}
  244. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  245.  
  246. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  247. {░░░░░░} Procedure SelectPressedImage( NameOfImage : ImageArrowName); {░░░░░░}
  248. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  249. {░░░██████████████████████████████████████████████████████████████████████░░░}
  250. {░░░█ Select New pressed mouse cursor image.                             █░░░}
  251. {░░░██████████████████████████████████████████████████████████████████████░░░}
  252. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  253.  
  254. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  255. {░░░░░░░░░░░░░░░░░░░░░░░} Procedure LinkUserImageWith {░░░░░░░░░░░░░░░░░░░░░░}
  256. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  257. {░░░░░░░░░░░░░░} (ArrowName                 : ImageArrowName; {░░░░░░░░░░░░░░}
  258. {░░░░░░░░░░░░░░}  var UserImage             : ImageArray);    {░░░░░░░░░░░░░░}
  259. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  260. {░░░██████████████████████████████████████████████████████████████████████░░░}
  261. {░░░█ Define User Mouse Image for ArrowName from ImageArrowName.         █░░░}
  262. {░░░██████████████████████████████████████████████████████████████████████░░░}
  263. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  264.  
  265. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  266. {░░░░░░░░░░░░░░░░░░░░░░░░░░} Procedure  NothingDo; {░░░░░░░░░░░░░░░░░░░░░░░░░}
  267. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  268. {░░░██████████████████████████████████████████████████████████████████████░░░}
  269. {░░░█ Simply return.                                                     █░░░}
  270. {░░░██████████████████████████████████████████████████████████████████████░░░}
  271. {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
  272.