home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* MKDEMO.PAS *)
- (* (c) 1990 Raimond Reichert & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM MouseKeyDemo;
-
- USES MouseKey, Crt;
-
- VAR
- Ev : EventObj;
- i : INTEGER;
-
- (* ------------------------------------------------------ *)
- (* Der Handler zu Demozwecken: er piepst nur kurz. *)
-
- {$F+}
- PROCEDURE AllHandler(VAR Event : EventObj);
- BEGIN
- Sound(250); Delay(1); NoSound;
- IF (Event.EventType AND EvMouAll > 0) THEN BEGIN
- IF (Event.Y = 2) THEN Mouse^.TextMouse(#25, 15, 7);
- IF (Event.Y = 24) THEN Mouse^.TextMouse(#24, 15, 7);
- IF (Event.X = 2) THEN Mouse^.TextMouse(#26, 15, 7);
- IF (Event.X = 79) THEN Mouse^.TextMouse(#27, 15, 7);
- IF (Event.Y > 2) AND (Event.Y < 24) AND
- (Event.X > 2) AND (Event.X < 79) THEN
- Mouse^.TextMouse(#255, 15, 7)
- END;
- IF (Event.EventType = EvKeyPressed) THEN BEGIN
- IF (Event.Key = Ord('R')) OR
- (Event.Key = Ord('r')) THEN BEGIN
- Sound(1000); Delay(15); NoSound;
- END;
- END;
- END;
- {$F-}
-
- BEGIN
- TextAttr := 7; ClrScr;
- IF (EvHand = NIL) OR (Mouse = NIL) THEN BEGIN
- TextAttr := $7F;
- Write('Fehler beim Initialisieren der Objekte ');
- WriteLn('(im Init-Teil der Unit MouKey) !');
- TextAttr := 15;
- WriteLn;
- WriteLn('Programm abgebrochen.');
- Halt;
- END;
- TextAttr := 15;
- WriteLn('Demo der Unit MOUKEY - EventHandling':55);
- TextAttr := 7;
- FOR i := 1 TO 80 DO Write('─');
- GotoXY(1, 24);
- FOR i := 1 TO 80 DO Write('─');
- TextAttr := 15;
- Write ('(c) 1990 Raimond Reichert & TOOLBOX':55);
- TextAttr := 7;
- Window (2, 3, 79, 23);
- WriteLn(' Bitte irgendeine Eingabe machen, ',
- 'Maus oder Tastatur: ');
- { Handler eintragen, hier für alle Eventarten. }
- { Zum Experimentieren am besten "EvMouAll" etc. ein- }
- { setzen. }
- EvHand^.RegisterHandler(EvAll, AllHandler);
- Mouse^.SetArea(2, 2, 79, 24);
- REPEAT
- Mouse^.Show; { Maus sichtbar machen }
- TakeOut := TRUE; { aus Tastaturpuffer entfernen }
- EvHand^.WaitForEvent(EvAll, Ev);
- Mouse^.Hide;
- WriteLn;
- Write('Zeitpunkt: ', Ev.Time,
- ' Event-Art: ', Ev.EventType:4,' : ');
- TextAttr := 15;
- CASE Ev.EventType OF
- EvMouMove,
- EvLeftPress,
- EvLeftRel,
- EvRightPress,
- EvRightRel : Write('Maus => X: ', Ev.X,
- ' Y: ', Ev.Y,
- ' Taste(n): ', Ev.Buttons);
- EvKeyPressed : IF Ev.Key < 255 THEN
- Write('"Normale" Taste, Code: ',
- Ev.Key,
- ' Zeichen: ',
- Chr(BYTE(Ev.Key)))
- ELSE
- Write('erweiterte Taste, Code: ',
- Ev.Key);
- EvKeyState : Write('Statustaste, BitWert: ',
- Ev.StateKey);
- EvKeyUnknown : Write('Unbekannte Taste, ScanCode: ',
- Ev.ScanCode,
- ' Status: ', Ev.State);
- END;
- TextAttr := 7
- UNTIL (Ev.EventType = EvKeyPressed) AND (Ev.Key = 27);
- TakeOut := FALSE;
- WriteLn;
- WriteLn;
- Write('<ENTER> zum Beenden...');
- ReadLn;
- Window(1, 1, 80, 25)
- END.
- (* ------------------------------------------------------ *)
- (* Ende von MKDEMO.PAS *)