home *** CD-ROM | disk | FTP | other *** search
-
-
- ██████████████████████████████████████
- ██████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████
- ██████▒▒▒▒▒ RMouse 1.10 ▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ MOUSE Handling Toolbox ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ Turbo Pascal 6.0 ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ Includes: ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ - convenient program ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ interfface; ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ - GRAPHIC Mouse cursor ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ in TEXT mode for EGA ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ VGA adapters (a'la NORTON ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ Utilities 6.0). ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ Copyright 1992 ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ Igor Evsikov, ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ Sergey Shmakov and ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ Pete Sychov ░░░░▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒░░░ ░░░░▒▒▒▒▒▒██████
- ██████▒▒▒▒▒ October 1992 ▒▒▒▒▒▒██████
- ███████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██████
- ██████████████████████████████████████
-
-
- RMOUSE is a Turbo Pascal 6.0 mouse handling unit for
- application programs. In comparison with another units this
- one gives you advantages:
-
- - simple and convenient program interface. Most units (e. g.
- Turbo Professional TPMOUSE) simply gives you Pascal interface
- to mouse support driver interrupt INT 33. This is a powerful
- tool but rather complicated and not transparent one. This
- unit provides a set of function to handle MOUSE and KEYBOARD
- events in a similar way (as in MS Windows). From our point of
- view simplicity and convenience of the event driven approach
- well compensate a slight loss of flexibility compared to the
- custom INT 33 based technique.
-
- - for EGA or VGA adapters you may use GRAPHIC mouse cursor
- (a'la NORTON UTILITIES 6.0) in TEXT videomode. A variety of
- the mouse cursor shapes is supplied. When selected, the
- graphic mouse cursor _smoothly_ moves through the screen.
- Text modes 132x25, 132x43, 80x43(50) are supported.
-
- AMOUSE10.ZIP contains :
-
- - RMOUSE.TPU Turbo Pascal 6.0 Unit
- - RMOUS.DOC with interface part of unit
- - DEMO.PAS demo source
- - DEMO.INC demo source
- - DEMO.EXE demo EXE-file
- - RMOUSE.REG
-
- Registered users will receive source code for RMouse.tpu
- through e-mail.
-
- Demo SYNTAX:
- >DEMO [/b] [/n] [/e] [/mXX]
-
- where
- /b ... black and white mode on
- /n ... normal (not grathic) mouse cursor for VGA/EGA
- /e ... switch to EGA mode with VGA adapter
- /mXX ... switch screen to XX mode (for demo 132x25,
- 80x43,...)
-
-
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
- ░░░███████████████████████████████████████████████████████████░░░
- ░░░███████████████████Technical Support███████████████████████░░░
- ░░░███████████████████████████████████████████████████████████░░░
- ░░░█ Questions and comments can send for me on then e-mail █░░░
- ░░░█ evsikov@lcta.jinr.dubna.su █░░░
- ░░░███████████████████████████████████████████████████████████░░░
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
-
- This program is being distributed under the Shareware
- concept.
-
- If you like this program and use it, a registration fee of
- $ 5.00 is required for non-profit users. Commercial users
- registration fee of $ 15.00. Registered users will receive
- source code for RMouse.tpu through e-mail. See the file
- RMOUSE.REG. Registration also includes free technical support,
- within the limitations of my time and resources.
-
- This registration fee is intended to cover my personal
- time and expense in developing, documenting, distributing,
- and supporting this toolbox.
-
-
- Write to:
-
- Igor I. Evsikov
- LCTA, JINR, (Dubna)
- P.O. Box 79, Head Post Office
- Moscow 101000 Russia
-
- E-mail: evsikov@lcta5.jinr.dubna.su
-
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒Interface Listing for RMouse.pas▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
-
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒UNIT RMouse.pas▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {$R-,L-,D-,S-,F-,V-,A+,O+,I+,B-,E-,N-,G-,X-}
-
- unit RMouse;
-
- interface
-
- uses crt,dos;
-
-
- Type
-
- InsideProc = procedure;
- {████████████████████████████████████}
- imageArray = array[0..15] of byte; {█ Pixel array for arrow images █}
- {████████████████████████████████████}
- EventStatus = (No_Event, Left_Button, {█ Mouse Status for all mouse █}
- Right_Button, Both_Button, {████████████████████████████████████}
- Center_Button, Left_Center_Button, {█ Status for 3-buttons mouse █}
- Right_Center_Button, All3_Button, {████████████████████████████████████}
- KBD_Key, KBD_Special_Key); {█ Keyboard Status █}
- {████████████████████████████████████}
-
- ImageArrowName = (
- NormalArrow, DragArrow, {████████████████████████████████████}
- DragArrowL, DragArrowR, {█ The names of mouse cursor images █}
- ClockArrow, HandArrow, {████████████████████████████████████}
- Hand1Arrow, Clock2Arrow,
- Hand2Arrow, BigArrow,
- SU29Arrow, Hand3Arrow,
- PencilArrow, FootArrow,
- PlusArrow, Big2Arrow,
- SightArrow, UserArrow);
-
- const {████████████████████████████████████}
- NumberOfButtons : integer = 0; {█The number of buttons █}
- AMouse : boolean = false; {█If False then standard cursor █}
- ClickTime : integer = 9; {█Double click time in timer ticks █}
- MouseReady : boolean = false; {█True if a mouse is installed █}
- SwitchToEGA : boolean = false; {█if True then VGA converted to EGA █}
- {█mode for more smoothing moves █}
- var {████████████████████████████████████}
- CurrentStatus : EventStatus; {█Who pressed now █}
- {████████████████████████████████████}
-
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ MAIN PROCEDURES ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
-
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░} Procedure ReInitArrowMouse; {░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Detect mouse driver, reinitialize Arrow Mouse, set Event Handler, █░░░}
- {░░░█ init variables, select default Mouse Image etc. AMouse initiates █░░░}
- {░░░█ automatically, so this to use after DoneArrowMouse █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░} function GetEvent {░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░}(var Ch : Char; {░░░░░░░░░}
- {░░░░░░░░░░} var x : byte; {░░░░░░░░░}
- {░░░░░░░░░░} var y : byte; {░░░░░░░░░}
- {░░░░░░░░░░} UserRutineIfNotProcessed : InSideProc; {░░░░░░░░░}
- {░░░░░░░░░░} UserRutineIfButtonPressed : InSideproc): EventStatus;{░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ After any KEYBOARD or MOUSE event, Returns KBD/MOUSE Status, █░░░}
- {░░░█ character under mouse cursor or from keyboard (ASCII or extended) █░░░}
- {░░░█ position of mouse/KBD cursor. If there is no user routine, use █░░░}
- {░░░█ PROCEDURE NothingDo, for example see DEMO.PAS... █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░} Procedure DoneArrowMouse; {░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Shutdowm Arrow mouse CORRECTLY. Use this procedure before exit to █░░░}
- {░░░█ DOS or start child process █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
-
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ADDITIONAL PROCEDURES ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
- {▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒}
-
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░} Procedure ShowArrow; {░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Show the mouse cursor. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░} Procedure HideArrow; {░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Hide the mouse. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░} Function WhereArrowX : byte; {░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Return current X coordinate for mouse █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░} Function WhereArrowY : byte; {░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Return current Y coordinate for mouse. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░} Procedure GotoArrowXY( MouseX, MouseY : Byte); {░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Set mouse position. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░} Procedure SelectNotPressedImage( NameOfImage : ImageArrowName); {░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Select New notpressed mouse cursor image. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░} Procedure SelectPressedImage( NameOfImage : ImageArrowName); {░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Select New pressed mouse cursor image. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░} Procedure LinkUserImageWith {░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░} (ArrowName : ImageArrowName; {░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░} var UserImage : ImageArray); {░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Define User Mouse Image for ArrowName from ImageArrowName. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
-
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░} Procedure NothingDo; {░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░█ Simply return. █░░░}
- {░░░██████████████████████████████████████████████████████████████████████░░░}
- {░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░}