home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
basic
/
library
/
tb
/
mousetb
/
mousebox.doc
< prev
next >
Wrap
Text File
|
1993-07-29
|
30KB
|
806 lines
┌──────────────────────────────────────────────────────┐
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ Mousebox-Handbuch │
│ │
│ │
│ Routinen zur Unterstützung der Microsoft Mouse │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ Copyright (c) 1988, 89, 90 │
│ │
│ by │
│ │
│ Ralf Krause │
│ │
│ Leuchtenberger Str. 7a │
│ D-8480 Weiden i. d. Opf. │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ Kein Teil dieses Handbuches darf ohne schriftliche │
│ Genehmigung des Programmautors in irgend einer Form │
│ vervielfältigt, archiviert oder verbreitet werden! │
│ Der Programmautor behält sich Änderungen am Pro- │
│ gramm und an dem Handbuch vor! │
└──────────────────────────────────────────────────────┘
Über die »Mousebox«:
Die »Mousebox« ist eine Sammlung von Prozeduren und
Funktionen zur Steuerung und Überwachung einer Micro-
soft Mouse, bzw. einer Microsoft-kompatiblen Mouse.
Mit den Routinen können Sie Ihre Programme, nach dem
Sie sie geändert haben nun auch mit Ihrer Mouse benut-
zen.
Einfügen der Routinen in Ihre Programme:
Das Einfügen der Routinen der »Mousebox« geschieht
durch Einfügen der folgenden Zeile in Ihre Programme:
$INCLUDE "MOUSEBOX.INC"
$INCLUDE "MOUSECSR.DEF" (nur wenn Sie welche der vor-
definierten Grafik-Cursor be-
nutzen)
Nutzung der Routinen in eigenen Programmen:
Sie dürfen Sie die Routinen mit folgenden Beschränkungen
in Ihren Programmen verwenden:
Die Weitergabe des Sourcecodes der Routinen ist jedoch,
genau wie die veröffentlichung in Zeitschriften, Mailbo-
xen, etc. verboten.
Eine Zuwiederhandlung gegen diese Beschränkungen kann
sowohl Zivil-, als auch Strafrechtliche Schritte zur
Folge haben.
Wenn Sie noch nicht registrierter Benutzer sind, so be-
denken Sie bitte das die Registrierungsgebühr nur
DM 29.-- beträgt.
Als registrierter Anwender haben Sie einige Vorteile,
sehen Sie sich hierzu das Registrierungsformular auf der
nächsten Seite an.
Über dieses Handbuch:
Dieses Handbuch erläutert alle Prozeduren und Funktionen
der »Mousebox«. Nehmen Sie sich ruhig etwas Zeit das
Handbuch zu lesen.
Das Handbuch ist wie folgt aufgebaut:
1. Name der Prozedur oder Funktion
2. ob es eine Prozedur oder eine Funktion ist
3. Syntax
4. Aufgabe der Prozedur oder Funktion
5. Beispiel wie die Prozedur oder Funktion benutzt wird;
hier stehen jedoch nur die Schritte, die zeigen wie
die Prozedur oder Funktion angewandt wird;
(Sehen Sie sich hierzu auch das Beispielprogramm
MOUSEDEM.BAS auf der Diskette an)
Herr
Ralf Krause
Leuchtenberger Str. 7a
D-8480 Weiden i. d. OPf.
R e g i s t r i e r u n g
Ja, ich möchte mich als Anwender der Mousebox für Turbo-
Basic für nur DM 29.-- registrieren lassen.
Für diesen Betrag werden mir folgende Leistungen geboten:
- Zusendung der neuesten Version
- Update-Service
- Handbuch
- Hilfe bei Fragen und Problemen (bitte schriftlich ein-
reichen und Rückporto nicht vergessen)
Meine Anschrift lautet:
Vorname:____________________ Name:________________________
Straße :___________________________________
PLZ/Ort:____ ______________________________ Land:___
Ich habe die Sharewareversion der Mousebox für Turbo Basic
bei:
COMPUDISK, J.QUIRMBACH
Tel.02161/631217
von Grootestr.226
4050 Mönchengladbach 1
gekauft.
Den Betrag von DM 29.-- │ Ich benötige folgen-
│ des Diskettenformat:
[ ] habe ich als Verechnungs- │
scheck beigelegt │ [ ] 3½"-Disketten
│ (zzgl. DM 3.--)
[ ] habe ich auf das folgende │
Konto überwiesen: │
│ [ ] 5¼"-Disketten
Deutsche Bank-Weiden │
BLZ : 760 700 12 │ Ist nichts angekreutzt,
Kto.-Nr.: 6657936 │ werden 5¼"-Disketten
│ geliefert
[ ] erheben Sie bitte per │
Nachnahme (zzgl. DM 5.-- │
Nachnahmegebühr) │
______________________________ ___________________________
Ort, Datum Unterschrift (bei Minder-
jährigen eines Erziehungs-
berechtigten)
InitMouse
Prozedur/Funktion: Funktion
Syntax : a = FN InitMouse
Aufgabe : überprüft und initialisert den Maus-
treiber; das Ergebnis der Funktion
ist entweder TRUE(-1) oder FALSE(0);
ist das Ergebnis TRUE so ist eine
Mouse vorhanden, andernfalls nicht;
diese Funktion muß vor der Benutzung
anderer Funktionen der »Mousebox«
einmal aufgerufen worden sein
Beispiel : iMouseExist = FN InitMouse
? "Es ist ";
IF NOT iMouseExistMouse THEN ? "k";
? "eine Mouse vorhanden!"
ResetMouse
Prozedur/Funktion: Prozedur
Syntax : CALL ResetMouse
Aufgabe : setzt den Mouse-Treiber zurück,
diese Prozedur sollten Sie bei ver-
lassen Ihrer Programme aufrufen;
Beispiel : CALL InitMouse
. ' hier steht Ihr
. ' Programm
CALL ResetMouse ' sollte am Ende
' stehen
ShowCursor
Prozedur/Funktion: Prozedur
Syntax : CALL ShowCursor
Aufgabe : schaltet den Mousecursor an; macht
ihn am Bildschirm sichtbar
Beispiel : CALL ShowCursor
HideCursor
Prozedur/Funktion: Prozedur
Syntax : CALL HideCursor
Aufgabe : schaltet den Mousecursor aus; macht
ihn am Bildschirm unsichtbar
Beispiel : CALL HideCursor
GetXPosition
Prozedur/Funktion: Funktion
Syntax : x = FN GetXPosition
Aufgabe : ermittelt die horizontale Position des
Mousecursors;
Beispiel : ? "horizontale Position:";
? FN GetXPosition
GetYPosition
Prozedur/Funktion: Funktion
Syntax : y = FN GetYPosition
Aufgabe : ermittelt die vertikale Position des
Mousecursors;
Beispiel : ? "vertikale Position:";
? FN GetYPosition
GetXTextPosition
Prozedur/Funktion: Funktion
Syntax : x = FN GetXTextPosition
Aufgabe : ermittelt die horizontale Position des
Mousecursors; das Ergebnis liegt im
Bereich der Textkoordinaten (1-80)
Beispiel : ? "horizontale Position:";
? FN GetXTextPosition
GetYTextPosition
Prozedur/Funktion: Funktion
Syntax : y = FN GetYTextPosition
Aufgabe : ermittelt die vertikale Position des
Mousecursors; das Ergebnis liegt im
Bereich der Textkoordinaten (1-25)
Beispiel : ? "vertikale Position:";
? FN GetYTextPosition
LeftButton
Prozedur/Funktion: Funktion
Syntax : n = FN LeftButton
Aufgabe : testet ob die linke Mouse-Taste ge-
drückt ist, oder nicht;
ist die linke Taste gedrückt, so ist
das Ergebnis der Funktion TRUE, ist
die linke Taste nicht gedrückt, so
ist das Ergebnis FALSE
Beispiel : ? "Die linke Taste ist ";
IF NOT FN LeftButton THEN ? "nicht ";
? "gedrückt!"
RightButton
Prozedur/Funktion: Funktion
Syntax : n = FN RightButton
Aufgabe : testet ob die rechte Mouse-Taste
gedrückt ist, oder nicht;
ist die rechte Taste gedrückt, so
liefert die Funktion den Wert -1,
ist die rechte Taste nicht gedrückt,
so liefert sie den Wert 0
Beispiel : ? "Die rechte Taste ist ";
IF NOT FN RightButton THEN_
? "nicht ";
? "gedrückt!"
MiddleButton
Prozedur/Funktion: Funktion
Syntax : n = FN MiddleButton
Aufgabe : testet ob die mittlere Mouse-Taste
gedrückt ist, oder nicht;
ist die mittlere Taste gedrückt, so
liefert das Ergebnis der Funktion
TRUE, ist die mitllere Taste nicht
gedrückt, so ist das Ergebnis FALSE
Beispiel : ? "Die mittlere Taste ist ";
IF NOT FN MiddleButton THEN_
? "nicht ";
? "gedrückt!"
LeftButtonPressed
Prozedur/Funktion: Funktion
Syntax : n = FN LeftButtonPressed
Aufgabe : stellt fest wie oft die linke
Mouse-Taste seit der letzten Abfrage
gedrückt wurde
Beispiel : ? "Die linke Mouse-Taste wurde";
? FN LeftButtonPressed;
? "mal gedrückt!"
RightButtonPressed
Prozedur/Funktion: Funktion
Syntax : n = FN RightButtonPressed
Aufgabe : stellt fest wie oft die rechte
Mouse-Taste seit der letzten Abfrage
gedrückt wurde
Beispiel : ? "Die rechte Mouse-Taste wurde";
? FN RightButtonPressed;
? "mal gedrückt!"
MiddleButtonPressed
Prozedur/Funktion: Funktion
Syntax : n = FN MiddleButtonPressed
Aufgabe : stellt fest wie oft die mittlere
Mouse-Taste seit der letzten Abfrage
gedrückt wurde
Beispiel : ? "Die mittlere Mouse-Taste wurde";
? FN MiddleButtonPressed;
? "mal gedrückt!"
LeftButtonReleased
Prozedur/Funktion: Funktion
Syntax : n = FN LeftButtonReleased
Aufgabe : stellt fest wie oft die linke
Mouse-Taste seit der letzten Abfrage
losgelassen wurde
Beispiel : ? "Die linke Mouse-Taste wurde";
? FN LeftButtonReleased;
? "mal losgelassen!"
RightButtonReleased
Prozedur/Funktion: Funktion
Syntax : n = FN RightButtonReleased
Aufgabe : stellt fest wie oft die rechte
Mouse-Taste seit der letzten Abfrage
losgelassen wurde
Beispiel : ? "Die rechte Mouse-Taste wurde";
? FN RightButtonReleased;
? "mal losgelassen!"
MiddleButtonReleased
Prozedur/Funktion: Funktion
Syntax : n = FN MiddleButtonReleased
Aufgabe : stellt fest wie oft die mittlere
Mouse-Taste seit der letzten Abfrage
losgelassen wurde
Beispiel : ? "Die mittlere Mouse-Taste wurde";
? FN MiddleButtonReleased;
? "mal gedrückt!"
MouseMoved
Prozedur/Funktion: Funktion
Syntax : n = FN MouseMoved
Aufgabe : testet ob die Mouse bewegt während
der Abfrage bewegt wird, falls dies
der Fall ist so ist das Ergebnis der
Funktion TRUE, andernfalls ist es
FALSE
Beispiel : n = FN MouseMoved
? "Die Mouse wurde ";
IF NOT n THEN ? "nicht ";
? "bewegt!"
MouseLeftMoved
Prozedur/Funktion: Funktion
Syntax : n = FN MouseLeftMoved
Aufgabe : testet ob die Mouse während der Ab-
frage nach links bewegt wird, falls
dies der Fall ist so ist das Ergebnis
der Funktion TRUE, andernfalls ist es
FALSE
Beispiel : n = FN MouseLeftMoved
? "Die Mouse wurde ";
IF NOT n THEN ? "nicht ";
? "nach links bewegt!"
MouseRightMoved
Prozedur/Funktion: Funktion
Syntax : n = FN MouseRightMoved
Aufgabe : testet ob die Mouse während der Ab-
frage nach rechts bewegt wird, falls
dies der Fall ist so ist das Ergebnis
der Funktion TRUE, andernfalls ist es
FALSE
Beispiel : n = FN MouseRightMoved
? "Die Mouse wurde ";
IF NOT n THEN ? "nicht ";
? "nach rechts bewegt!"
MouseUpMoved
Prozedur/Funktion: Funktion
Syntax : n = FN MouseUpMoved
Aufgabe : testet ob die Mouse während der Ab-
frage nach oben bewegt wird, falls
dies der Fall ist so ist das Ergebnis
der Funktion TRUE, andernfalls ist es
FALSE
Beispiel : n = FN MouseUpMoved
? "Die Mouse wurde ";
IF NOT n THEN ? "nicht ";
? "nach oben bewegt!"
MouseDownMoved
Prozedur/Funktion: Funktion
Syntax : n = FN MouseDownMoved
Aufgabe : testet ob die Mouse während der Ab-
frage nach unten bewegt wird, falls
dies der Fall ist so ist das Ergebnis
der Funktion TRUE, andernfalls ist es
FALSE
Beispiel : n = FN MouseDownMoved
? "Die Mouse wurde ";
IF NOT n THEN ? "nicht ";
? "nach unten bewegt!"
SetXYMouse
Prozedur/Funktion: Prozedur
Syntax : CALL SetXYMouse(x,y)
Aufgabe : setzt den Mousecursor auf die über-
gebene horizontale und vertikale Po-
sition
Beispiel : CALL SetXYMouse(319,99)
SetXRange
Prozedur/Funktion: Prozedur
Syntax : CALL SetXRange(XMin%, XMax%)
Aufgabe : setzt die minimale und maximale
horizontale Mousecursorposition
Beispiel : CALL SetXRange(0,639)
SetYRange
Prozedur/Funktion: Prozedur
Syntax : CALL SetYRange(YMin%, YMax%)
Aufgabe : setzt die minimale und maximale
vertikale Mousecursorposition
Beispiel : CALL SetYRange(0,319)
SetGraphicCursor
Prozedur/Funktion: Prozedur
Syntax : CALL SetGraphicCursor(_
GraphicCursor%(2), XHotSpot%,_
YHotSpot%)
Aufgabe : definiert den Grafik-Mousecursor;
GraphicCursor%(2) ist ein zweidimen-
sionales Integer-Array, das die
Bildschirm- und die Cursor-Maske ent-
hält;
XHotSpot% ist der horizontale Punkt
bei dem eine Funktion ausgeführt
werden soll;
YHotSpot% ist der vertikale Punkt bei
dem eine Funktion ausgeführt werden
soll;
in der Datei MOUSECSR.DEF sind be-
reits ein paar Grafikcursor vorde-
finiert
Beispiel : DIM GraphicCursor(15,2)
BildschirmMaske:
DATA &B0111111111111111
DATA &B0001111111111111
DATA &B0000011111111111
DATA &B0000000111111111
DATA &B0000000001111111
DATA &B0000000000011111
DATA &B0000000000000111
DATA &B0000000000000001
DATA &B0000100001111111
DATA &B0011110000111111
DATA &B1111111000011111
DATA &B1111111100001111
DATA &B1111111110000111
DATA &B1111111111000011
DATA &B1111111111100001
DATA &B1111111111111111
CursorMaske:
DATA &B1000000000000000
DATA &B1010000000000000
DATA &B1000100000000000
DATA &B1000001000000000
DATA &B1000000010000000
DATA &B1000000000100000
DATA &B1000000100001000
DATA &B1000100111111110
DATA &B1001010010000000
DATA &B1100001001000000
DATA &B0000000100100000
DATA &B0000000010010000
DATA &B0000000001001000
DATA &B0000000000100100
DATA &B0000000000011110
DATA &B0000000000000000
HotSpots:
DATA 0,0
FOR n% = 0 TO 1
FOR m% = 0 TO 15
READ GraphicCursor(m%, n%)
NEXT m%
NEXT n%
READ XHotSpot%, YHotSpot%
Mouse% = FN InitMouse
IF Mouse% THEN
SCREEN 2
CLS
CALL SetGraphicCursor(_
GraphicCursor%(2), XHotSpot%,_
YHotSpot%)
CALL ShowCursor
' warten bis rechte Mouse-Taste ge-
' drückt
WHILE NOT FN RightButton : WEND
CALL HideCursor
SCREEN 0
CLS
ELSE
? "Mouse-Treiber nicht installiert!"
END IF
SetTextCursor
Prozedur/Funktion: Prozedur
Syntax : CALL SetTextCursor(CursorType%,_
TextScreenMask%, TextCursorMask%)
Aufgabe : definiert den Text-Mousecursor;
CursorType% gibt an, ob es sich um
einen Hardwareware- oder um einen
Software-Cursor handelt;
CursorType% = 0 : Softwarecursor
CursorType% = 1 : Hardwarecursor
bei CursorType% = 1:
TextScreenMask% : obere Cursor Be-
grenzung
TextCursorMask% : untere Cursor Beg
grenzung
bei CursorType% = 0:
Bit 0 - 7 : Zeichencode
Bit 8 - 10 : Vordergrundfarbe
Bit 11 : Intensität normal/hell
Bit 12 - 14 : Hintergrundfarbe
Bit 15 : blinken ein/aus
Beispiel : TextScreenMask% = &B0111011111111111
TextCursorMask% = &B0111011100000000
CursorType% = 0
CALL SetTextCursor(CursorType%,_
TextScreenMask%, TextCursorMask%)
GetXMickey
Prozedur/Funktion: Funktion
Syntax : x = FN GetXMickey
Aufgabe : horizontalen Mouse-Bewegungszähler
(Mickey-Zähler) lesen
Beispiel : ? "horizontaler Mickey-Zähler:";
? FN GetXMickey
GetYMickey
Prozedur/Funktion: Funktion
Syntax : x = FN GetYMickey
Aufgabe : vertikalen Mouse-Bewegungszähler
(Mickey-Zähler) lesen
Beispiel : ? "vertikaler Mickey-Zähler:";
? FN GetYMickey
SetXYMickey
Prozedur/Funktion: Prozedur
Syntax : CALL SetXYMickey(XMickey, YMickey)
Aufgabe : horizontale und vertikale Mickey-
Einheit setzen;
XMickey : Anzahl der Mickeys, die
einem horizontalen Bild-
schirmpunkt entsprechen
YMickey : Anzahl der Mickeys, die
einem vertikalen Bild-
schirmpunkt entsprechen
Beispiel : CALL SetXYMickey(16, 16)
SetMouseSpeed
Prozedur/Funktion: Prozedur
Syntax : CALL SetMouseSpeed(Speed)
Aufgabe : Schwellenwert für doppelte Mouse-
Cursor-Geschwindigkeit in Mickeys pro
Sekunde setzen
Beispiel : CALL SetMouseSpeed(100)