Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Visual Basic - Selezionare oggetto

    Salve a tutti, sono nuovo nella programmazione e ho un problema, che mi sembra stupido ma che non so risolvere.
    Ho creato una mia versione del celebre gioco della pallina che rimbalza e che bisogna colpire con una racchetta che si muove su e giù. Il problema è che per far muovere la racchetta con la tastiera, devo prima selezionarla (subito dopo aver lanciato il gioco) e quindi vorrei sapere come faccio a iniziare la partita con la racchetta già selezionata.
    Grazie in anticipo per l'aiuto,

  2. #2
    Di solito il metodo è "SetFocus" però dovresti chiarire un paio di cose

    1 ) Che oggetto usi per visualizzare la racchetta ?

    2 ) Perchè hai bisogno di selezionare l'oggetto in questione ? Dal post non è molto chiaro

  3. #3
    Io ho creato la racchetta con un RectangleShape e devo selezionarla altrimenti non risponde alla tastiera. Quando il programma parte non posso muoverela; se invece ci clicco sopra col mouse posso usarla (per muoverla non uso le frecce direzionali, ma due lettere poichè uso l'evento KeyDown). A me serve che la racchetta sia selezionata già dall'inizio, senza che ci clicchi sopra col mouse. Grazie in anticipo

  4. #4
    Mi pare che i controlli Shape non supportino il Setfocus o il Keydown
    Fossi in te userei una textbox per passare i comandi alla racchetta
    Vedi se ti funziona questo codice, a me funziona
    -----------

    Private Sub Form_Load()
    Me.Show

    Text1.Text = ""
    Text1.SetFocus
    End Sub

    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim A As Integer
    A = KeyCode

    Select Case A
    Case Is = 65
    Shape1.Left = Shape1.Left - 100
    Case Is = 68
    Shape1.Left = Shape1.Left + 100
    Case Is = 87
    Shape1.Top = Shape1.Top - 100
    Case Is = 83
    Shape1.Top = Shape1.Top + 100

    End Select
    Text1.Text = ""

    End Sub
    -----------------------------------

    Basta che metti una textbox e una shape - "Text1" / "Shape1"
    poi muovi la racchetta con "a" "d" "w" "s"

    Così con "w" puoi anche fare lo smash!!

    Sappimi dire

  5. #5
    Grazie, verificherò se funziona. Un'altra cosa: ho creato un tasto "Ricomincia" che funziona regolarmente e una MsgBox che appare quando perdi e ti chiede "Vuoi rigiocare?" con i tasti "Sì" e "No". Il problema è che non riesco a far ripartire il gioco quando premo "Sì". Mi riposiziona la palla, il timer parte ma la palla rimane ferma, come se non sapesse che fare; ho provato anche a incollare lo stesso codice del pulsante "Ricomincia", ma niente. Come devo fare?

  6. #6
    Ho provato il codice che mi hai dato, ma mi dice che SetFocus non è un membro di TextBox e anche se seleziono la TextBox i tasti non fanno funzionare la racchetta.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    760
    Supponendo che si stia parlando di Visual Basic 6 e che con RectangleShape si intenda un controllo Shape di forma rettangolare, non occorre nessuna TextBox e non occorre nessun SetFocus.
    Basta impostare la proprietà KeyPreview del form su True e gestire i quattro tasti nell'evento KeyDown del Form.

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da simonefocaccina
    Grazie, verificherò se funziona. Un'altra cosa: ho creato un tasto "Ricomincia" che funziona regolarmente e una MsgBox che appare quando perdi e ti chiede "Vuoi rigiocare?" con i tasti "Sì" e "No". Il problema è che non riesco a far ripartire il gioco quando premo "Sì". Mi riposiziona la palla, il timer parte ma la palla rimane ferma, come se non sapesse che fare; ho provato anche a incollare lo stesso codice del pulsante "Ricomincia", ma niente. Come devo fare?
    Devi rispettare ilRegolamento :
    per ogni problema devi aprire una nuova discussione.

    Stessa cosa per il tuo problema principale:
    non hai indicato la versione di VB che usi (come da Regolamento ) così nessuno può aiutarti proficuamente non sapendo di che linguaggio stiamo parlando.

  9. #9
    Usa il metodo di Grumpy; è migliore

    Originariamente inviato da Grumpy
    Supponendo che si stia parlando di Visual Basic 6 e che con RectangleShape si intenda un controllo Shape di forma rettangolare, non occorre nessuna TextBox e non occorre nessun SetFocus.
    Basta impostare la proprietà KeyPreview del form su True e gestire i quattro tasti nell'evento KeyDown del Form.







    Epperò ...................
    Originariamente inviato da simonefocaccina
    Ho provato il codice che mi hai dato, ma mi dice che SetFocus non è un membro di TextBox e anche se seleziono la TextBox i tasti non fanno funzionare la racchetta.
    Ma sei sicuro che stai usando il VB 6 ?
    Perchè
    1 ) "Setfocus" è sicuramente un metodo dei textbox
    2 ) Rectangleshape è un oggetto usato da almeno 5 diversi linguaggi di programmazione
    http://msdn.microsoft.com/en-us/libr...ngleshape.aspx

    Non starai mica usando l'assembler ??

    A focaccì !!!




  10. #10
    Scusatemi tutti...........non uso visual basic 6, ma Visual Basic 2010 Express

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 © 2026 vBulletin Solutions, Inc. All rights reserved.