Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - InputBox Pulsante Annulla
Forum - Visual Basic 6 - InputBox Pulsante Annulla

Avatar
Anie (Normal User)
Newbie


Messaggi: 11
Iscritto: 02/03/2010

Segnala al moderatore
Postato alle 18:38
Venerdì, 19/03/2010
Salve a tutti ho un piccolo problemino XD

Sto creando un programma dove i due dati che mi servono vengono inseriti dall'utente attraverso le inputbox... i dati possono essere solo numerici...
quindi ho fatto questo :

Codice sorgente - presumibilmente VB.NET

  1. For i = 0 To 1
  2.  
  3.  a = InputBox("inserisci numeri positivi", "INSERIMENTO NUMERI")
  4.  
  5.  
  6.  'codice per vedere se a è un numero
  7.  Do While Not IsNumeric(a)
  8.    a = InputBox("devi inserire solamente numeri", "ERRORE")
  9.    
  10.  Loop
  11.  
  12.    
  13. txth0(i).Text = CDbl(a)
  14.  
  15. Next i



fino a qua nn incontro problemi.
L'unica cosa che mi fa venire i nervi è che nel momento in cui premo annulla(cancel) nell'inputbox questa si riapre fino a quando nn inserisco i numeri...
come posso fare per ovviare ciò?

ho visto anche su internet che un codice per gestire Annulla è empty ma mi da errore...
quindi ho pensato...ora lo frego io!! aggiungo on "errore resume next" ma dopo se inserisco dei caratteri non mi fa il while e restituisce la stringa con valore 0 e al prof non piace...

che consigli mi date??
grazie mille =):rotfl:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:24
Venerdì, 19/03/2010
Tu inserisci 2 dati (dato che usi quella for) ... come si dovrebbe comportare il porogramma se pressi Cancel (per il primo e/o il secondo numero)?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Anie (Normal User)
Newbie


Messaggi: 11
Iscritto: 02/03/2010

Segnala al moderatore
Postato alle 21:08
Venerdì, 19/03/2010
per me può restituire un stringa 0 =)
l'importante è che se inserisco dei caratteri diversi dai numeri compaia l'iputbox di errore per rinserire i dati e nn restituisca 0
(in pratica deve uscire dal for e restituire 0, penso, su entranbe le txtbox)
=)

Ultima modifica effettuata da Anie il 19/03/2010 alle 21:10
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:39
Venerdì, 19/03/2010
Qualcosa del genere

Codice sorgente - presumibilmente VB.NET

  1. Dim i As Integer
  2.     Dim a As String
  3.     Dim canc As Boolean
  4.    
  5.     canc = False
  6.     For i = 0 To 1
  7.         a = InputBox("inserisci numeri positivi", "INSERIMENTO NUMERI")
  8.        
  9.         If Len(a) = 0 Then
  10.             canc = True
  11.             Exit For
  12.         End If
  13.        
  14.         'codice per vedere se a è un numero
  15.         Do While Not IsNumeric(a)
  16.            a = InputBox("devi inserire solamente numeri", "ERRORE")
  17.             If Len(a) = 0 Then
  18.                 canc = True
  19.                 Exit For
  20.             End If
  21.         Loop
  22.        
  23.         txth0(i).Text = CDbl(a)
  24.     Next i
  25.  
  26.     If canc Then
  27.         txth0(0).Text = "0"
  28.         txth0(1).Text = "0"
  29.     End If



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Anie (Normal User)
Newbie


Messaggi: 11
Iscritto: 02/03/2010

Segnala al moderatore
Postato alle 0:08
Sabato, 20/03/2010
Testo quotato

Postato originariamente da nessuno:

Qualcosa del genere

Codice sorgente - presumibilmente VB.NET

  1. Dim i As Integer
  2.     Dim a As String
  3.     Dim canc As Boolean
  4.    
  5.     canc = False
  6.     For i = 0 To 1
  7.         a = InputBox("inserisci numeri positivi", "INSERIMENTO NUMERI")
  8.        
  9.         If Len(a) = 0 Then
  10.             canc = True
  11.             Exit For
  12.         End If
  13.        
  14.         'codice per vedere se a è un numero
  15.         Do While Not IsNumeric(a)
  16.            a = InputBox("devi inserire solamente numeri", "ERRORE")
  17.             If Len(a) = 0 Then
  18.                 canc = True
  19.                 Exit For
  20.             End If
  21.         Loop
  22.        
  23.         txth0(i).Text = CDbl(a)
  24.     Next i
  25.  
  26.     If canc Then
  27.         txth0(0).Text = "0"
  28.         txth0(1).Text = "0"
  29.     End If




non pensavo ci fosse un exit for XD grazie mille
ma lan che significa???

volendo posso anche scrivere
if (a<>empty) then
'codice senza aver premunto annulla
else
'codice che gestisce annulla
end if

più o meno è la stessa cosa XD

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:52
Sabato, 20/03/2010
Testo quotato

Postato originariamente da Anie:
non pensavo ci fosse un exit for XD grazie mille



Prego ... ma queste cose non si "pensano" ... si "studiano" nella documentazione ...

Testo quotato

ma lan che significa???



Veramente è Len non lan ... calcola la "lunghezza" della stringa ...

Testo quotato

volendo posso anche scrivere



Sì ... ma calcolare la lunghezza della stringa è più "intuitivo" ... comunque, va bene lo stesso ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote