Använda en mus i QBasic program
Under längst tid, hade jag ville hitta ett sätt att använda musen i min egen QBasic program. Medan jag så småningom hittade flera fina exempel på kod on-line som faktiskt gränssnitt med musen, verkade de alla mycket komplicerat för mig, med flera sub rutiner, funktioner och proceduranrop. Så jag bestämde mig att "koka ner allt" till metoden enklaste, bare-minst, och jag vet vad jag kom med är fortfarande det snabbaste och enklaste sättet att införliva mus funktionerna i ett program för QBasic!
Man skulle kunna tro av min kod som ett slags "svart låda" eller "plug-in" av olika slag; du helt enkelt kopiera min "Mus" sub rutin till programmet, och det ger omedelbart rudimentär mus stöd! Gränssnitt med musen sker sedan genom tre enkla funktioner; "Mus 1" visar muspekaren, "Mouse 2" döljer det igen, och "Mouse 3" läser musens aktuella knappen status också eftersom det är läge. Denna information lämnas till användarens program genom 3 globala variabler. "B" representerar musknapparna, "H" innehåller det är horisontella koordinater och "V" returnerar det är lodräta koordinater. För en 2-knappars mus, kommer variabeln "B" returnera följande värden:
VÄRDE:-KNAPPEN (S):
0 ingen
1 vänster
2 höger
3 båda
Följande är det faktiska mus kod segment som ger mus stöd:
''''''''''''''''''''''''''''''''''''''''''''''''''' Mouse Sub-program ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
"Detta delprogram ger mus stöd till QBasic program.
"Det anropas med en parameter, och utför följande:
"Mus 1 (visar muspekaren)
"Mus 2 (döljer muspekaren)
"Mus 3 (läser knappen status & koordinater)
'
"Anteckningar:
'
"Detta delprogram kräver Microsofts musdrivrutin (Mouse.com)
"eller motsvarande Dos-baserade musdrivrutin, som måste läsas in och
"kör före användning.
'
"Variabler B, H & V är globala, så vissa att inte skapa någon
"andra variabler av samma namn, eller om du måste ändra namn på dessa.
'
"Se till att dölja muspekaren innan du utför någon grafik
"funktion, eller annars någon grafik under markören kommer att bli förvrängd.
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB mus (Funk) "definiera sub & -parametern.
DELAD B, H, V ' dela variabler med huvudsakliga sub.
STATISKA Crsr "spåra om markören ska visas.
OM Funk = 1 då Crsr = 1 ' Visa markören.
OM Funk = 2 och Crsr = 0 då EXIT SUB "Dölj inte markören mer än en gång.
OM Funk = 2 och Crsr = 1 då: Crsr = 0 ' dölja markören.
PETA 100, 184: Peta 101, Funk: peta 102, 0 ' Poke maskinkod behövs för
PETA 103, 205: Peta 104, 51: peta 105, 137 "med musen i minnet
PETA 106, 30: Peta 107, 170: peta 108, 10 "börjar på offset 100 i den
PETA 109, 137: Peta 110, 14: peta 111, 187 ' aktuella segmentet. Denna kod är
PETA 112, 11: Peta 113, 137: peta 114, 22 "körs som en enhet, via den
PETA 115, 204: Peta 116, 12: peta 117, 203 "uttalande"Kallar absoluta".
SAMTAL Absolute(100) ' kallar maskinkod.
B = PEEK (& Hellström) ' få värden för knappar.
H = (PEEK(&HBBB) + PEEK (& HBBC) * 256) ' horisontellt läge (2 byte).
V = (PEEK(&HCCC) + PEEK (& HCCD) * 256) "vertikal position (2 byte).
END SUB "slutet av delprogram.
Följande påståenden bör vara de första två kommandon i alla program som använder den här koden:
DEFINT A-Ö
DEKLARERA SUB mus (Funk) "förklarar mus delprogram.
Tillsammans med detta instructable, jag har tagit prov program ("QBMOUSE. BAS") samt en"mall"av olika slag ("mus. SUB"), som innehåller mus sub rutin och en tom huvudprogrammet, där du vill ange en egen kod. Om du har några frågor, funderingar eller bara missnöjet om denna kod, är du välkommen att kontakta mig på; flurng jag välkomnar dina synpunkter, och jag hoppas du njuta av att skapa spännande nya mus-aktiverade QBasic program med hjälp av denna sub rutin. När du är redo att börja, Läs vidare till första steg, och framför allt... Ha kul!