home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ┌──────────────────────────────────────────────────────┐
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ 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:
-
- Turbo Pascal 3:
-
- {$INCLUDE "MOUSEBOX.INC"}
-
- ab Turbo Pascal 4:
-
- USES
- ..., { weitere Units }
- Mousebox;
-
-
- 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.
- In der Mousebox wird ausgiebig vom Typ WORD gebrauch ge-
- macht, dieser Typ wurde für Turbo Pascal 3.0 wie folgt
- definiert:
-
- TYPE
- WORD : INTEGER;
-
- Dies ermöglichte es die Mousebox ohne große Änderungen für
- Turbo Pascal 3.0 zu übernehmen.
-
- 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-
- Pascal 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 Pascal
- bei:
-
- PD-Service Lage
- Bernd Schulz
-
- Postfach 17 43
- D-4937 Lage/Lippe
-
- 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 : BooleanVar := InitMouse;
-
- Aufgabe : überprüft und initialisert den Maus-
- treiber; das Ergebnis der Funktion
- ist entweder TRUE oder FALSE;
- 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 : MouseExist := InitMouse;
- Write('Es ist ');
- IF NOT iMouseExist THEN Write('k');
- WriteLn('eine Mouse vorhanden!');
-
-
-
-
- ResetMouse
-
- Prozedur/Funktion: Prozedur
-
- Syntax : ResetMouse
-
- Aufgabe : setzt den Mouse-Treiber zurück,
- diese Prozedur sollten Sie bei ver-
- lassen Ihrer Programme aufrufen;
-
- Beispiel : BooleanVar := InitMouse;
- . ' hier steht Ihr
- . ' Programm
- ResetMouse; ' sollte am Ende
- ' stehen
-
-
-
- ShowCursor
-
- Prozedur/Funktion: Prozedur
-
- Syntax : ShowCursor
-
- Aufgabe : schaltet den Mousecursor an; macht
- ihn am Bildschirm sichtbar
-
- Beispiel : ShowCursor
-
-
-
-
- HideCursor
-
- Prozedur/Funktion: Prozedur
-
- Syntax : HideCursor
-
- Aufgabe : schaltet den Mousecursor aus; macht
- ihn am Bildschirm unsichtbar
-
- Beispiel : HideCursor
-
- GetXPosition
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := GetXPosition;
-
- Aufgabe : ermittelt die horizontale Position des
- Mousecursors;
-
- Beispiel : WriteLn('horizontale Position:',
- GetXPosition);
-
-
-
-
- GetYPosition
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := GetYPosition;
-
- Aufgabe : ermittelt die vertikale Position des
- Mousecursors;
-
- Beispiel : WriteLn('vertikale Position:',
- GetYPosition);
-
-
-
-
- GetXTextPosition
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := GetXTextPosition;
-
- Aufgabe : ermittelt die horizontale Position des
- Mousecursors; das Ergebnis liegt im
- Bereich der Textkoordinaten (1-80)
-
- Beispiel : WriteLn('horizontale Position:',
- GetXTextPosition);
-
-
-
-
- GetYTextPosition
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := GetYTextPosition;
-
- Aufgabe : ermittelt die vertikale Position des
- Mousecursors; das Ergebnis liegt im
- Bereich der Textkoordinaten (1-25)
-
- Beispiel : WriteLn('vertikale Position:',
- GetYTextPosition);
-
- LeftButton
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := 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 : Write('Die linke Taste ist ');
- IF NOT LeftButton THEN Write('nicht ');
- WriteLn('gedrückt!');
-
-
-
-
- RightButton
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := RightButton;
-
- Aufgabe : testet ob die rechte Mouse-Taste ge-
- drückt ist, oder nicht;
- ist die rechte Taste gedrückt, so ist
- das Ergebnis der Funktion TRUE, ist
- die rechte Taste nicht gedrückt, so
- ist das Ergebnis FALSE
-
- Beispiel : Write('Die rechte Taste ist ');
- IF NOT RightButton THEN Write('nicht ');
- WriteLn('gedrückt!');
-
-
-
-
- MiddleButton
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := MiddleButton;
-
- Aufgabe : testet ob die mittlere Mouse-Taste ge-
- drückt ist, oder nicht;
- ist die mittlere Taste gedrückt, so ist
- das Ergebnis der Funktion TRUE, ist
- die mittlere Taste nicht gedrückt, so
- ist das Ergebnis FALSE
-
- Beispiel : Write('Die mittlere Taste ist ');
- IF NOT MiddleButton THEN Write('nicht ');
- WriteLn('gedrückt!');
-
-
-
-
-
- LeftButtonPressed
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := LeftButtonPressed;
-
- Aufgabe : stellt fest wie oft die linke
- Mouse-Taste seit der letzten Abfrage
- gedrückt wurde
-
- Beispiel : WriteLn('Die linke Mouse-Taste wurde ',
- LeftButtonPressed,
- ' mal gedrückt!');
-
-
-
-
- RightButtonPressed
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := RightButtonPressed;
-
- Aufgabe : stellt fest wie oft die rechte
- Mouse-Taste seit der letzten Abfrage
- gedrückt wurde
-
- Beispiel : WriteLn('Die rechte Mouse-Taste wurde ',
- RightButtonPressed,
- ' mal gedrückt!');
-
-
-
-
- MiddleButtonPressed
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := MiddleButtonPressed;
-
- Aufgabe : stellt fest wie oft die mittlere
- Mouse-Taste seit der letzten Abfrage
- gedrückt wurde
-
- Beispiel : WriteLn('Die mittlere Mouse-Taste wurde ',
- MiddleButtonPressed,
- ' mal gedrückt!');
-
-
-
-
- LeftButtonReleased
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := LeftButtonReleased;
-
- Aufgabe : stellt fest wie oft die linke
- Mouse-Taste seit der letzten Abfrage
- losgelassen wurde
-
- Beispiel : WriteLn('Die linke Mouse-Taste wurde ',
- LeftButtonPressed,
- ' mal losgelassen!');
-
-
-
-
- RightButtonReleased
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := RightButtonReleased;
-
- Aufgabe : stellt fest wie oft die rechte
- Mouse-Taste seit der letzten Abfrage
- losgelassen wurde
-
- Beispiel : WriteLn('Die rechte Mouse-Taste wurde ',
- RightButtonPressed,
- ' mal losgelassen!');
-
-
-
-
- MiddleButtonReleased
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := MiddleButtonReleased;
-
- Aufgabe : stellt fest wie oft die mittlere
- Mouse-Taste seit der letzten Abfrage
- losgelassen wurde
-
- Beispiel : WriteLn('Die mittlere Mouse-Taste wurde ',
- MiddleButtonPressed,
- ' mal losgelassen!');
-
-
-
-
- MouseMoved
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := MouseMoved;
-
- Aufgabe : testet ob die Mouse während der Ab-
- frage bewegt wird, falls dies der
- Fall ist so ist das Ergebnis der
- Funktion TRUE, andernfalls ist es
- FALSE
-
- Beispiel : Write('Die Mouse wurde ');
- IF NOT MouseMoved THEN Write('nicht ');
- WriteLn('bewegt!');
-
- MouseLeftMoved
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := 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 : Write('Die Mouse wurde ');
- IF NOT MouseLeftMoved THEN Write('nicht ');
- WriteLn('nach links bewegt!');
-
-
-
-
- MouseRightMoved
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := 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 : Write('Die Mouse wurde ');
- IF NOT MouseRightMoved THEN Write('nicht ');
- WriteLn('nach rechts bewegt!');
-
-
-
-
- MouseUpMoved
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := 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 : Write('Die Mouse wurde ');
- IF NOT MouseUpMoved THEN Write('nicht ');
- WriteLn('nach oben bewegt!');
-
-
-
-
-
- MouseDownMoved
-
- Prozedur/Funktion: Funktion
-
- Syntax : BooleanVar := 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 : Write('Die Mouse wurde ');
- IF NOT MouseDownMoved THEN Write('nicht ');
- WriteLn('nach unten bewegt!');
-
-
-
-
- SetXYMouse
-
- Prozedur/Funktion: Prozedur
-
- Syntax : SetXYMouse(X, Y);
- X und Y sind beide vom Typ WORD
-
- Aufgabe : setzt den Mousecursor auf die über-
- gebene horizontale und vertikale Po-
- sition
-
- Beispiel : SetXYMouse(319,99);
-
-
-
-
- SetXRange
-
- Prozedur/Funktion: Prozedur
-
- Syntax : SetXRange(XMin, XMax);
- XMin und XMax sind beide vom Typ WORD
-
- Aufgabe : setzt die minimale und maximale
- horizontale Mousecursorposition
-
- Beispiel : SetXRange(0,639);
-
-
-
-
- SetYRange
-
- Prozedur/Funktion: Prozedur
-
- Syntax : SetYRange(YMin, YMax);
- YMin und YMax sind beide vom Typ WORD
-
- Aufgabe : setzt die minimale und maximale
- vertikale Mousecursorposition
-
- Beispiel : SetYRange(0,319);
-
- SetGraphicCursor
-
- Prozedur/Funktion: Prozedur
-
- Syntax : SetGraphicCursor(GraphicCursor);
-
- Aufgabe : definiert den Grafik-Mousecursor;
- GraphicCursor ist vom Typ MouseCursor, der
- in der Unit Mousebox (bei Turbo Pascal 3.0
- in der Datei MOUSEBOX.INC) definiert wird,
- er enthält die Bildschirm- und die Cursor-
- Maske, sowie den horizontalen und vertikalen
- Hotspot;
- Der Hotspot ist der Punkt im Cursor bei
- dem eine Funktion ausgeführt werden soll;
- In der Mousebox sind bereits einige vor-
- definierte Mousecursor für den Grafikmodus
- enthalten
-
- Beispiel : (Bildschirm muß sich im Grafikmodus be-
- finden)
-
- IF InitMouse THEN
- BEGIN
- SetGraphicCursor(Arrow);
- ShowCursor;
- Write('Programm wird durch drücken');
- Write(' der linken Maustaste beendet!');
- WHILE NOT LeftButton;
- END;
-
- SetTextCursor
-
- Prozedur/Funktion: Prozedur
-
- Syntax : SetTextCursor(TextCursor);
-
- Aufgabe : definiert den Text-Mousecursor;
- CursorType gibt an, ob es sich um einen
- Hardware- oder um einen SoftwareCursor
- handelt;
- TextCursor ist vom Typ TextCursorType, der
- in der Mousebox definiert wurde und hat
- folgenden Aufbau
-
- TextCursorType = RECORD
- HardWareCrusor : BOOLEAN;
- ScreenMask,
- CursorMask : INTEGER;
- END;
-
- HardWareCursor = 0 : Softwarecursor
- HardWareCursor = 1 : Hardwarecursor
-
- bei HardWareCursor = 1:
- TextScreenMask : obere Cursor Begrenzung
- TextCursorMask : untere Cursor Begrenzung
-
- bei HardWareCursor = 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 : VAR
- TextCursor : TextCursorType;
-
- BEGIN
- TextCursor.HardWareCursor := 1;
- TextCursor.ScreenMask := 5;
- TextCursor.CursorMask := 7;
- SetTextCursor(TextCursor);
- END;
-
- GetXMickey
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := GetXMickey;
-
- Aufgabe : horizontalen Mouse-Bewegungszähler
- (Mickey-Zähler) lesen
-
- Beispiel : WriteLn('horizontaler Mickey-Zähler: ',
- GetXMickey);
-
-
-
-
- GetYMickey
-
- Prozedur/Funktion: Funktion
-
- Syntax : WordVar := GetYMickey;
-
- Aufgabe : vertikalen Mouse-Bewegungszähler
- (Mickey-Zähler) lesen
-
- Beispiel : WriteLn('vertikaler Mickey-Zähler: ',
- GetYMickey);
-
-
-
-
- SetXYMickey
-
- Prozedur/Funktion: Prozedur
-
- Syntax : SetXYMickey(XMickey, YMickey);
- XMickey und YMickey sind beide vom
- Typ WORD
-
- 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 : SetXYMickey(100, 100);
-
-
-
-
- SetMouseSpeed
-
- Prozedur/Funktion: Prozedur
-
- Syntax : SetMouseSpeed(Speed);
- Speed ist vom Typ WORD
-
- Aufgabe : Schwellenwert für doppelte Mouse-
- Cursor-Geschwindigkeit in Mickeys pro
- Sekunde setzen
-
- Beispiel : SetMouseSpeed(100);