Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Näppäinyhdistelmät

Puhveli [02.07.2004 11:44:54]

#

Keksin vasta että INKEY$ osaa myös näppäinyhdistelmiä, ja kirjotin tällaisen simppelin ohjelman. Ei sinänsä mitään uutta, paitsi ehkä se idea että esim Ctrl + S toimii QBssä

'Tämä ohjelma yksinkertaisesti printtaa painetun INKEY$:n ascii-koodin

 'Omaan ohjelmaan voi laittaa vaikka
    'SELECT CASE INKEY$
    '   CASE CHR$(24): Leikkaa
    '   CASE CHR$(3): Kopioi
    '   CASE CHR$(22): Liitä
    '   CASE CHR$(19): Tallenna
    '   CASE CHR$(15): Lataa
    '     jne...
    'END SELECT
  'ja noi ascii -koodit saa tällä ohjelmanpätkällä selville


  CLS
  LOCATE 25, 3: PRINT "Ihmemies McEronen Software Nappikuuntelu 2004"
  LOCATE 2
  PRINT "   Aika jännää..."
  PRINT ""
  PRINT "  QBasicissa saa myös näppäinyhdistelmiä INKEY$ -funktiolla"
  PRINT "  Vasen ja oikea Ctrl tai Alt eivät tee eroa, eikä Shiftillä"
  PRINT "  voi leikkiä kuin kirjainten ja numeroiden kanssa, mutta"
  PRINT "  silti..."
  PRINT ""
  PRINT "   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ"
  PRINT ""
  PRINT "   Paina nappeja, niin kerron mikä sen koodi on..."

    'Kuunnellaan nappi
        DO: Btn$ = INKEY$: LOOP UNTIL LEN(Btn$)


    'Pyyhitään napinpainelukehotus pois
        LOCATE 11, 4: PRINT SPACE$(47)

    'Printataan painettu nappi
        COLOR 15: LOCATE 11, 4
        SELECT CASE LEN(Btn$)
            CASE 1:
                PRINT "CHR$(" + LTRIM$(STR$(ASC(LEFT$(Btn$, 1)))) + ")"
            CASE 2:
                PRINT "CHR$(" + LTRIM$(STR$(ASC(LEFT$(Btn$, 1)))) + ") + CHR$(" + LTRIM$(STR$(ASC(RIGHT$(Btn$, 1)))) + ")"
        END SELECT
        COLOR 7: PRINT "    " + CHR$(34) + Btn$ + CHR$(34);


        CLOSE : END: STOP: SYSTEM '� pelataan varman päälle :)
'Tämä on kanssa käyttökelpoinen lyhyt versio, jonka voi
    'vaikka väliaikaisesti liittää oman ohjelman alkuun:
        'CLS : PRINT "Paina nappia": DO: Btn$ = INKEY$: LOOP UNTIL LEN(Btn$): CLS : PRINT "CHR$(" + LTRIM$(STR$(ASC(LEFT$(Btn$, 1)))) + ") + CHR$(" + LTRIM$(STR$(ASC(RIGHT$(Btn$, 1)))) + ")": END

hunajavohveli [03.07.2004 11:30:20]

#

Joo, ihan hyvinhän tuo havainnollistaa. Ja kerrompa tässä vielä, että INKEY$ voi palauttaa myös useamman merkin. Sillä voi lukea nuolinäppäimiäkin, joita painettaessa INKEY$ palauttaa CHR$(0):lla alkavat kirjaimet M, K, H ja P.

sooda [05.07.2004 16:40:27]

#

Hyödykäs hommeli :P

Puhveli [06.07.2004 19:38:15]

#

se tossa ei ole loogista että esim ctrl + kirjaimen pituus on vain yksi merkki, kun taas deleten painaminen onkin sitten kaksimerkkinen INKEY$ (CHR$(0) + "S"). :p kurjaa

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta