Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    20

    [VB6]Muovere un oggetto da tastiera

    Ciao a tutti avrei bisogno che tramite le frecce destra e sinistra possa muovere un oggetto tipo:

    If 'premo freccia destra' then
    shape1.left = shape1.left + 10
    end if

    if 'premo freccia sinistra' then
    shape1.left = shape1.left - 10
    end if

    Poi naturalmente io lo inseriro in un ciclo, con un timer per fare in modo che il programma possa ricevere costantemente questi comandi, ma mi serve la parte 'premo freccia sinistra', come si fa?

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758

    Re: [VB6]Muovere un oggetto da tastiera

    Nell'evento KeyUp del Form puoi testare il KeyCode per individuare quale tasto è stato premuto ed alterare di conseguenza le coordinate del controllo Shape.
    E' indispensabile anche impostare la proprietà KeyPreview del form a True.
    Originariamente inviato da vitna91
    Poi naturalmente io lo inseriro in un ciclo, con un timer per fare in modo che il programma possa ricevere costantemente questi comandi
    Proprio perché intercetterai l'evento di pressione di un tasto, non avrai bisogno di nessun ciclo e di nessun timer. Visual Basic è un linguaggio Event driven .

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    20
    Grazie infinite.
    Scusami non sono molto pratico potresti darmi il codice per testare il keyKeyCode per individuare quale tasto è stato premuto?

    Grazie ancora e scusami.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Originariamente inviato da vitna91
    Scusami non sono molto pratico potresti darmi il codice per testare il keyKeyCode per individuare quale tasto è stato premuto?
    Non essere molto pratici non è una colpa, ma non è un buon motivo per chiedere del codice già pronto. E' anche contrario ai principi che regolano questo e altri forum e anche alle mie abitudini.
    Comincia col documentarti sulla guida sugli elementi che ti ho indicato, scrivi qualcosa e poi, se non funziona, la possiamo migliorare insieme.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    20
    ok grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    20
    Ho scritto questo codice:



    codice:
    Public Sub Form_KeyPress(KeyAscii As Integer)
     lbl_kc.Caption = KeyAscii 
    Select Case KeyAscii 
    Case 51     moveright...
    E poi in un modulo :

    codice:
    Public Sub moveright()  
    shape.Left = shape.Left + 50  
    End Sub
    Il tutto va bene, ho fatto anche il codice per i movimenti destra, giu e su. Purtroppo però il programma non trova il codice ascii delle frecce, ho provato anche con keycode, ma le frecce sono gli unici tasti che sembrano non avere codice, come potete vedere ho creato una label per poter leggere il codice, ogni tasto che premo mi da il cod. le frecce no... soluzioni?

    Inoltre non è possibile permettere la pressione di due tasti contemporaneamente? tipo su e destra e ottenere un movimento diagonale?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    I tasti di movimento del cursore (frecce) non generano un carattere Ascii, per questo non sono rilevati dall'evento Keypress. Usa invece l'evento KeyUp (o anche KeyDown) come ti avevo suggerito prima ed esamina il Keycode.
    Premendo due tasti "contemporaneamente" verrà attivata (probabilmente) due volte la serie di eventi di cui stiamo parlando.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    20
    Ho provato anche keyup e keydown ma le frecce non me le da...


    Dopo un po ho capito il perchè: nella form ci sono due bottoni e premendo le frecce si sposta soltanto la selezione da un bottone all'altro senza generare alcun evento per il form, ho provato ad eliminare i bottoni e le frecce funzionano, ma i bottoni mi servono qualcuno conosce come risolvere il problema?

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Mi sembra di capire che tu stai cercando di gestire i tasti direttamente nel Form, invece che in un controllo.
    Allora prova ad impostare la proprietà del Form:

    KeyPreview= True

    Così tutti gli eventi generati da tastiera saranno intercettati prima dal Form, e poi dal controllo attivo.

    Ancora non abbiamo capito cosa ti accingi a fare...


  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    20
    Per il keypreview l'ho impostato ma non funziona lo stesso...

    Cmq sto facendo un giochino...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.