En ole mistään tietoa löytänyt, että miten QBasicilla saa käsiteltyä esim. nuolinäppäimiä? Siis vaikka jos tekee johonkin ohjelmaan valikon, jossa liikutaan nuolinäppäimillä?
tää juttu ois varmaan kuulunu tonne QB/VB alueelle?
noh... tein yhen esimerkin nopsaan...
DEF SEG = &H40 'asetetaan muistisegmentti (tai jotain...) SCREEN 12 'vaihdetaan näyttötilaa x = 320 'asetetaan pisteen alkupaikka y = 240 DO POKE (&H1A), 0 'tyhjennetään näppäimistöpuskuri nappain = INP(&H60) 'luetaan porttia &H60 muuttujaan DO POKE (&H1A), 0 'tyhjennetään näppäimistöpuskuri LOOP UNTIL (INP(&H3DA) AND &H8) <> 0 'hidastus DO POKE (&H1A), 0 'tyhjennetään näppäimistöpuskuri LOOP UNTIL (INP(&H3DA) AND &H8) = 0 'hidastus IF nappain = 72 THEN y = y - 1 'luetaan näppisdataa IF nappain = 80 THEN y = y + 1 'ja liikutetaan IF nappain = 75 THEN x = x - 1 'pistettä nuolinäppäinten IF nappain = 77 THEN x = x + 1 'mukaan PSET (x, y), 2 'tässä piirretään piste näytölle LOOP UNTIL (nappain = 1) 'silmukka loppu kun painetaan essuu
Sisennykset.. missä on sisennykset? :)
Lisäksi olisi järkevintä hookata keskeytys #9, muuten saattaa jäädä muutama näppäimenpainallus/vapautus väliin..
tosiaan, väärä alue..
itse hoidan homman näin:
DO SELECT CASE INKEY$ CASE CHR$(0) + "H": PRINT "PAINOIT YLŽ NUOLTA" CASE CHR$(0) + "P": PRINT "PAINOIT ALA NUOLTA" CASE CHR$(0) + "K": PRINT "PAINOIT VASENTA NUOLTA" CASE CHR$(0) + "N": PRINT "PAINOIT OIKEATA NUOLTA" CASE CHR$(27): END END SELECT LOOP
ja toi lukee noi ihan hyvin
No, täytyypä kokeilla! Kiitos! :)
Toi oikea nuoli ei muuten toimi. :( Korjaisitko, kiitos.
Ehkä mieluummin jotain..:
DO A$ = INKEY$ SELECT CASE A$ CASE CHR$(0) + "H": PRINT "PAINOIT YLŽ NUOLTA" CASE CHR$(0) + "P": PRINT "PAINOIT ALA NUOLTA" CASE CHR$(0) + "K": PRINT "PAINOIT VASENTA NUOLTA" CASE CHR$(0) + "N": PRINT "PAINOIT OIKEATA NUOLTA" CASE CHR$(27): END END SELECT LOOP
Jaahas.. en taaskaan muistanut että miten ne tägit oikein menivät :x
ehkä ton CHR$(0) + "N" pitäis olla CHR$(0) + "M"
lainaus:
ehkä ton CHR$(0) + "N" pitäis olla CHR$(0) + "M"
No niinhän se toimiikin! Kiitos paljon Jogge! :)
Ei kukaan teistä vielä sattuisi tietämään, miten ENTER-näppäintä käytetään?
inkeysysteemii käytettäessä muistaakseni lisää tohon viimesimpään (fawkzin) esimerkkiin rivi:
CASE CHR$(13): PRINT "PAINOIT ENTERIÄ"
kai se nyt näin meni...
Juuh.. ASCII-koodi rivinvaihdolle on 13.
jos haluat jotain muuta, nii tää on kätevä:
do do:loop until inkey$ locate 1,1: print "painoit "; inkey$, " näppäintä jonka koodi on"; asc(inkey$) loop
Tästä näppäinkoodilistasta voisi olla apua:
https://www.ohjelmointiputka.net/oppaat/napk.php
Listan kolmas sarake "DOS:in scan-koodi" on QB:n käyttämä numero, esimerkiksi Enter on CHR$(13), Esc on CHR$(27) jne.
lainaus:
Listan kolmas sarake "DOS:in scan-koodi" on QB:n käyttämä numero, esimerkiksi Enter on CHR$(13), Esc on CHR$(27) jne.
Tarkoitat varmaan DOS:in näppäinkoodia.
lainaus:
Tästä näppäinkoodilistasta voisi olla apua:
https://www.ohjelmointiputka.net/oppaat/napk.php
Listan kolmas sarake "DOS:in scan-koodi" on QB:n käyttämä numero, esimerkiksi Enter on CHR$(13), Esc on CHR$(27) jne.
Hei, toihan on tosi hyvä! Nyt mun ei tartte enää kysyä teiltä kaikkea! :)
Mikset ole Antti L. pistänyt tota näppäinkoodilistan linkkiä sinne 'oppaat'-osioon? (tai sit oon niin sokee etten sitä sieltä löytänyt)
En oikein tiedä, minne tuon listan laittaisin, oppaaksi se ei oikestaan käy. Ehkä pitäisi tehdä jonnekin oma alueensa listoille/taulukoille, niistä on kuitenkin usein hyötyä.
Pistä vaikka sinne faq-alueelle, sitten kun se tulee...
Nyt näppäinkooditaulukko on liitetty oppaisiin, uusi URL on:
https://www.ohjelmointiputka.net/oppaat/opas.
Hyvä! Nopeata toimintaa.
Hienoa!
Aihe on jo aika vanha, joten et voi enää vastata siihen.