← Hitdisk 04 / 1990

Mausabfrage ganz einfach ?!

Vielleicht ist Ihnen dieses Problem und die Lösung schon bekannt, doch ich glaube, vielen, besonders AnfÀngern, wird es sicher helfen, um Programme mit Maussteuerung zu schreiben.

Nehmen wir mal an, Sie haben als MenĂŒ ihres neuen Programms ein schönes Bild gezeichnet, das viele Knöpfe (Engl.: Buttons) hat. Klickt man diese Buttons an, soll eine Funktion aufgerufen werden.
Dies ist kein Problem:

Nehmen wir an Sie möchten abfragen, ob der Anwender auf das Rechteck, das sich von dem Punkt 10,10 zu 40,80 erstreckt, klickt.

Dazu brauchen wir eine Schleife fĂŒr eine andauernde Abfrage, und springen dann zu einer Prozedur, die die Mauskoordinaten einließt (dieser Sprung verhindert das Flackern des Mauszeigers, das manchmal auftreten kann !). Das sieht dann so aus:

DO GOSUB mausabfrage LOOP ' PROCEDURE MOUSE x%,y%,z% RETURN

Nun wird einfach abgefragt, ob sich der Mauszeiger im Rechteck befindet und ob der linke Mausknopf (z%=1), der rechte (z%=2) oder beide (z%=3) gedrĂŒckt wurden.

IF x%>10 AND y%>10 AND x%<40 and y%<80 and z%=1 GOSUB werweiswas ENDIF

Hier muss der Mauszeiger also zwischen 10 und 40 auf der X-Achse und zwischen 10 und 80 auf der Y-Achse liegen, und der Mausknopf betÀtigt werden, um zur Prozedur 'werweiswas' zu springen.

Die Beispielroutine sieht dann wie folgt aus:

DO GOSUB mausabfrage ' IF x%>10 and y%>10 and x%<40 and y%<80 and z%=1 GOSUB werweiswas ENDIF ' LOOP ' PROCEDURE mausabfrage MOUSE x%,y%,z% RETURN

Einfach nicht wahr ? Dies sollte eigentlich ein Minitip werden, beim nÀchstenmal gibt es wirklich wieder einen Minitip, kurz und prÀgnannt wie immer !

HH