Gebruik van een muis in QBasic programma's


zoals wie heeft geprogrammeerd met QBasic weet, het is een leuk, eenvoudig en (voor zijn tijd) vrij krachtig programming tool!   Toegegeven, het is nogal traag, maar gezien het feit dat het nooit een dubbeltje kosten heeft, ik veronderstel dat is een acceptabel concessie.  Zoals ik al zei, QBasic omvat een breed scala van eenvoudige, krachtige commando's, hoewel er een flagrante tekortkoming is dat het volledige gebrek aan steun van de muis is!

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!

Gerelateerde Artikelen

Gebruik van een Xbox 360-Controller als een muis

Gebruik van een Xbox 360-Controller als een muis

kocht ik in eerste instantie een Xbox 360-controller te gebruiken met emulators. Ik heb ontdekt dat niet alleen worden uitgevoerd met de taak van het nabootsen van een SNES-controller bewonderenswaardig, maar met een gratis programma u het in plaats
Webcam Motion Capture / gebruik van een fakkel als een muis

Webcam Motion Capture / gebruik van een fakkel als een muis

dit Instructable zal u tonen hoe u uw webcam zodat kunt u een fakkel als een muis. Dit zal beter werken 's nachts, maar u kunt nog steeds doen gedurende de dag.Stap 1: Wat je nodig hebt:Een webcam, een webcam zou moeten werken.Een fakkel, als je er g
Gebruik van een Arduino met een N64-controller

Gebruik van een Arduino met een N64-controller

er zijn tutorials die er voor het gebruik van een NES-controller met een Arduino, maar met behulp van de meer gecompliceerde N64-controller en de analoge joystick heeft een duidelijke aantrekkingskracht. Als u een Arduino rond hebt en wil niet te kop
Het gebruik van een Laser Cutter

Het gebruik van een Laser Cutter

de laser cutter is een van de meest nuttige tools in een moderne winkel. Laser scharen werk door de leiding van een zeer krachtige laserstraal, op een precieze brandpuntsafstand, op een materiaal dat ze knippen of etch, afhankelijk van hoe de laser c
Digitale schilderij Les 1: De grondbeginselen van het gebruik van een grafisch tablet gebruikt

Digitale schilderij Les 1: De grondbeginselen van het gebruik van een grafisch tablet gebruikt

Computers hebben verandering gebracht naar iedere hoek van de moderne samenleving. Een van deze hoeken is kunst. Het internet staat vol van concept kunst, achtergronden en vele andere soorten afbeelding die zijn opgesteld door één of andere gebruiker
Het gebruik van een fabrikant geleverde Model in LTspice

Het gebruik van een fabrikant geleverde Model in LTspice

LTspice komt met eigen bibliotheken van modellen. Het is vrij uitgebreid en is niet verwonderlijk dat het bevat een grote hoeveelheid onderdelen van de lineaire technologieën (zoals het is een of andere manier "gesponsord" door LT). Het idee is
Het gebruik van een RGB-LED

Het gebruik van een RGB-LED

met een RGB LED u alle kleuren kunt doorlopen. Nuttig om te maken, Mood Lamp, expressieve robot of cool lichteffecten.Maar om gewoon de kleur (Hue) kan een beetje lastig omdat je moet converteren die naar individuele helderheidswaarde voor elk van de
Tips voor gebruik van een openbare 3D Printer - een persoonlijke Checklist aanpak

Tips voor gebruik van een openbare 3D Printer - een persoonlijke Checklist aanpak

wanneer een openbare 3D-printer, zoals op de locatie van een Techshop of op een maker space overwegen om de volgende tips en ideeën1) wat te doen elke keer dat u bent bezig met afdrukken2) instellingen die zijn opgeslagen in de software door andere g
Verminderen het klikgeluid van een muis.

Verminderen het klikgeluid van een muis.

Tutorial.Verminderen het klikgeluid van een muis.Het probleem is dat veel muizen daar een hoge en vervelend producerengeluid telkens wanneer hun rode knoppen worden ingedrukt.Oplossen van dat probleem die ik proberen zal om u begeleiden en u laten zi
Arduino All de dingen--S.M.A.R.T Alarm Clock-Setup voor vergaderingen, afspraken, herinneringen, en taken, deze klok maakt gebruik van een Arduino-Yún en uw Google agenda om automatisch alarm. en het ziet er ook Cool!

Arduino All de dingen--S.M.A.R.T Alarm Clock-Setup voor vergaderingen, afspraken, herinneringen, en taken, deze klok maakt gebruik van een Arduino-Yún en uw Google agenda om automatisch alarm. en het ziet er ook Cool!

S.M.A.R.T. wekkerSetup voor vergaderingen, afspraken, herinneringen en taken, deze klok automatisch instellen van alarmen maakt gebruik van een Arduino Yún en uw Google agenda. En het ziet er ook cool!Door Tony DiCola moeilijkheid: matigZou het niet
Het gebruik van een audio-mixer (zangbodem)

Het gebruik van een audio-mixer (zangbodem)

In dit instructable I 'm gonna doorlopen alle controle functies op de meeste mixers (mengpanelen, mengen van bureaus, audio consoles klankborden - ze allemaal verwijzen naar hetzelfde). Ik zal beginnen met de absolute grondbeginselen:Wat is een mixer
Het gebruik van een Android emulator (ANDY)

Het gebruik van een Android emulator (ANDY)

Het gebruik van een Android emulator (ANDY)"IK BEN EEN ENORME CLASH OF CLANS FAN EN HEBBEN ALTIJD AL WILDE SPELEN OP MIJN 17? HOME COMPUTER". Sinds ik gedownload ANDY sindsdien waarschijnlijk speel ik Clash van Clans op de PC meer dan mijn telef
Het gebruik van een hout beitel

Het gebruik van een hout beitel

PopularMechanics.comVoor ieder type bouwer zijn er zeer weinig onmisbare tools. Voor de houtbewerkers is de beitel de eenvoudige en veelzijdige tool die je gewoon niet kan zonder leven.Hier zijn enkele basistechnieken op het optimaal benutten van de
Het gebruik van een bidet

Het gebruik van een bidet

kansen zijn, als je van naar een ander land reizen, zult u tegenkomen een Bidet. U kunt ook een in de Verenigde Staten, vooral op hogere einde hotelketens of zelfs op Bed & Breakfasts tegenkomen.Sommige landen zijn vooral bekend voor het feit dat bid