Voor de langste tijd wilde ik een manier vinden om de muis gebruiken in mijn eigen QBasic-programma's. Terwijl ik vond uiteindelijk verschillende mooie voorbeelden van code on-line die in feite interface met de muis, leek ze allemaal zeer ingewikkeld voor mij, met meerdere subroutines en functies procedureaanroepen. Dus, heb ik besloten om "neer het allemaal" op de eenvoudigste, kale-minimum methode, en bij mijn weten, wat ik kwam met is nog steeds de snelste en gemakkelijkste manier muisfuncties in een QBasic programma opnemen!
Men zou kunnen denken van mijn code als een soort "zwarte doos" of een "plug-in" van soorten; u simpelweg uittreksel mijn "Muis" sub routine in uw programma, en het biedt onmiddellijk rudimentaire muis ondersteuning! Interfacing met de muis is dan volbracht door middel van drie eenvoudige functies; "Muis 1" toont de muiscursor, "Muis 2" huiden het opnieuw, en "Muis 3" leest van de muis huidige knop status zo goed als het is locatie. Deze informatie wordt doorgegeven aan de gebruiker programma via 3 globale variabelen; "B" vertegenwoordigt de muisknoppen, "H" bevat het horizontale coördinaten en "V" geeft als resultaat het verticale coördinaten. Voor een 2-knops muis, zal de variabele "B" de volgende retourwaarden:
WAARDE: INGEDRUKT (S):
0 None
1 Left
2 Right
3 Both
Het volgende is de werkelijke muis codesegment die muis ondersteuning biedt:
''''''''''''''''''''''''''''''''''''''''''''''''''' Mouse Sub-program ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Dit sub programma ondersteunt muis QBasic programma's.
' Het wordt aangeroepen met één parameter en voert als volgt:
' Muis 1 (Shows muiscursor)
"Mouse 2 (huiden muiscursor)
' Muis 3 (leest knop status & coördineert)
'
' Notes:
'
' Dit sub programma vereist van Microsoft mouse-stuurprogramma (Mouse.com)
"of een gelijkwaardige Dos-gebaseerde muisstuurprogramma, die moet worden geladen en
' uitgevoerd vóór gebruik.
'
' Variabelen B, H & V zijn globale, dus bepaalde niet te maken om het even welk
' andere variabelen van dezelfde naam, of je moeten opnieuw deze naam.
'
' Zorg ervoor dat u de muiscursor verbergen voordat u geen afbeeldingen
' functie, of anders geen afbeeldingen onder de cursor zal worden vervormd.
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB muis (Funk) ' Define sub & parameter die is doorgegeven.
GEDEELDE B, H, V ' variabelen met belangrijkste sub delen.
STATISCHE Crsr ' Track of Cursor wordt weergegeven.
ALS Funk = 1 THEN Crsr = 1 ' Toon Cursor.
ALS Funk = 2 en Crsr = 0 THEN EXIT SUB ' Cursor meer dan eens niet verbergen.
ALS Funk = 2 en Crsr = 1 THEN: Crsr = 0 ' verbergen van de Cursor.
POKE 100, 184: POKE 101, Funk: POKE 102, 0 "Poke machine code die nodig is voor
POKE 103, 205: POKE 104, 51: POKE 105, 137 ' met de muis in het geheugen
POKE 106, 30: POKE 107, 170: POKE 108, 10 ' beginnen bij compensatie 100 in de
POKE 109, 137: POKE 110, 14: POKE 111, 187 ' huidige segment. Deze code is
POKE 112, 11: POKE 113, 137: POKE 114, 22 ' dan uitgevoerd als een eenheid, via het
POKE 115, 204: POKE 116, 12: POKE 117, 203 "verklaring"Absolute Bel".
OPROEP Absolute(100) ' noem machine code.
B = PEEK (& HAAA) ' waarden krijgen voor knoppen.
H = (PEEK(&HBBB) + PEEK (& HBBC) * 256) ' horizontale positie (2 bytes).
V = (PEEK(&HCCC) + PEEK (& HCCD) * 256) ' verticale positie (2 bytes).
END SUB ' einde van sub-programma.
De volgende instructies moeten de eerste twee opdrachten in alle programma's die deze code wordt gebruikt:
DEFINT A-Z
DECLARE SUB muis (Funk) ' muis Declare Sub programma.
Samen met dit instructable, ik heb ook een steekproefprogramma ("QBMOUSE. BAS") alsmede een 'sjabloon' van soorten ("muis. SUB"), waarin de muis sub routine, en een lege hoofdprogramma, waar u uw eigen code zou invoeren. Mocht u nog vragen, zorgen of alleen klachten met betrekking tot deze code, aarzel niet om contact met mij op; flurng ik ben verheugd over alle feedback, en ik hoop dat u geniet van het maken van spannende nieuwe muis ingeschakelde QBasic programma's met behulp van deze sub routine. Wanneer u klaar om te beginnen bent, lees naar de eerste stap, en vooral... Veel plezier!