Newsgroup: it.comp.lang.visual-basic
Titolo: VB: scelte da tastiera.

Ragazzi, sono iscritto da pochi giorni ma ho giŕ avuto modo di notare la 
gentilezza, disponibilitŕ e soprattutto competenza di alcuni di voi.
Ad essere sincero mi sento un po come un pesce rosso a cui sia stata 
prosciugata la boccia d'acqua... e mi auguro che fra quelli che non scrivono 
ci siano delle schiappe come me. :P
Perciň abbiate pazienza e, se decidete di rispondermi, non date per scontate 
troppe cose, anzi, non datene affatto.
La mia domanda č questa.... Ne approfitto per ringraziare chi mi ha aiutato 
con la documentazione dei direct X.
Come posso creare in VB una routine che faccia una cosa se premo un tasto e 
ne faccia un'altra se premo un altro tasto?
In quick Basic scrivevo un ciclo infinito del tipo do....loop, in mezzo 
assegnavo una variabile al valore che proveniva dalla
funzione inkey$ la quale assumeva il valore dell'ultimo carattere premuto. 
Poi, con una serie IF then, chiedevo al programma di
mandare in esecuzione la tal sub se la variabile conteneva un certo valore, 
oppure la tal'altra sub, se la variabile ne conteneva un
altro.
In VB come si fa?
Ho letto qualcosa degli eventi key press e key down ma a quale oggetto li 
assegno? E come ottengo il tasto premuto?
Grazie.
Capunzo. 

 assegno? E come ottengo il tasto premuto?
Per esempio al Form, al quale puoi assegnare il KeyPreview
attivo, cosě qualunque tasto premuto verrŕ visto prima dal form.
Nella KeyUp, poi, puoi fare una o piů If, o meglio una Select per
decidere qual č l'azione da eseguire.
In alternativa, puoi usare dei menu e associare una shortcut ai
comandi.
Ancora, puoi usare dei normali Command o altri controlli e
associargli una hotkey tipo ALT-qualcosa, aggiungendo
una "&" alla caption.
Questi sono i metodi di base che ti permettono di fare il 99% di
quello che ti puň servire.
Leggiti l'help soprattutto alle voci KeyUp, KeyPress e correlate.
Per avere qualche esempio, taglia quello che trovi fra le due righe
di asterischi, incollalo in un file di testo col blocco note e chiamalo
form1.frm, poi aprilo con VB e provalo.
'*****************************
VERSION 5.00
Begin VB.Form Form1
 Caption = "Form1"
 ClientHeight = 2208
 ClientLeft = 132
 ClientTop = 708
 ClientWidth = 5364
 KeyPreview = -1 'True
 LinkTopic = "Form1"
 ScaleHeight = 2208
 ScaleWidth = 5364
 StartUpPosition = 3 'Windows Default
 Begin VB.TextBox Text1
 Height = 612
 Left = 2640
 MultiLine = -1 'True
 TabIndex = 1
 Text = "test tasti.frx":0000
 Top = 720
 Width = 2172
 End
 Begin VB.CommandButton Command1
 Caption = "Com&mand1"
 Height = 492
 Left = 600
 TabIndex = 0
 Top = 720
 Width = 1572
 End
 Begin VB.Menu mnuFile
 Caption = "File"
 Begin VB.Menu mnuTest1
 Caption = "test 1"
 Shortcut = ^D
 End
 Begin VB.Menu mnuTest2
 Caption = "Test 2"
 Shortcut = {F5}
 End
 End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub Command1_Click()
MsgBox "Il signore ha chiamato ?"
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode <> 13 Then ' escludiamo il tasto Invio, altrimenti ogni
' volta che dai OK con Invio, anzichč magari col mouse, ritorna qui.
MsgBox "Hai premuto il tasto col keycode n.: " & KeyCode
End If
If KeyCode = 32 Then
MsgBox "oh, ora che me ne accorgo: questo era uno spazio !"
End If
Select Case KeyCode
Case Is < 38
MsgBox "minore di 38"
Case Is = 75
MsgBox "75 giusto giusto !"
Case Is > 75
MsgBox "roba grossa oggi, eh ?"
Case Else
MsgBox "Faccio finta di niente, ma mi sono offeso. " & vbNewLine & "Che razza di
tasto č il " & KeyCode & ", eh ?"
End Select
End Sub
Private Sub mnuTest1_Click()
MsgBox "...hai premuto control-D, per caso ?"
End Sub
Private Sub mnuTest2_Click()
MsgBox "Sono sicuro: hai premuto F5 !"
End Sub
'********************************
Bye, G.

 "Che razza di tasto è il " & KeyCode & ", eh ?"
ROTFL !