Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    158

    [VB6]InputBox:solo numeri. è possibile?

    Salve ecco il problema.
    devo ricevere dei dati dall'utente, allora utilizzo la inputbox.
    Vorrei fare in modo che sia possibile inserire soltanto numeri?
    P.s in realtà oltre che ai numeri anche il segno + es. 30+20
    Grazie anticipatamente

  2. #2
    Basta verificare i dati dopo che sono stati inseriti con IsNumerical...
    codice:
    Dim stringa As String
    Dim numero As Double
    Do
        stringa = InputBox("Inserisci un numero:")
    Loop Until IsNumeric(stringa)
    numero = CDbl(stringa)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    158
    grazie per l'interessamento, però non è quello che volevo ( così potevo farlo anche da solo). Il fatto è che non voglio dire all'utente : hai sbagliato, ridammi i dati è così ipoteticamente all'infinito

  4. #4
    E quindi cosa vuoi fare? Un'InputBox in cui sia impossibile scrivere fisicamente valori non numerici? Allora devi crearti un form ad-hoc.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di tippolo
    Registrato dal
    Dec 2005
    Messaggi
    103
    Usa questo. Disattivi i tasti che non vuoi utilizzare:

    Private Sub txtCifra_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
    Case Is < 32 'I tasti di controllo li lasciamo possono tornare utili
    Case 48 To 57 'Tutte le cifre
    Case Is = 43 'Il segno "+"
    Case Else 'Scarta tutti gli altri tasti.
    KeyAscii = 0
    End Select
    End Sub

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Tenendo conto di quanto ha suggerito MItaly,
    prova in quest'altro modo:
    codice:
    Private Sub Command1_Click()
        'Variabili di InputBox:
        Dim MessageINx, TitleINx, DefaultINx, ValoreINx
        Dim Num As Variant
        
        Do
            If IsNumeric(ValoreINx) = False And ValoreINx <> "" Then
                MsgBox "Inserire solo numeri"
                ElseIf IsNumeric(ValoreINx) = False And ValoreINx = "" Then
                Exit Do
            End If
            MessageINx = "Immettere il tasso annuo nominale per lo scoperto bancario ( 10,25  per  10,25 % ). Il tasso annuo nominale sarà convertito nel tasso in capitalizzazione trimestrale."    'Imposta il messaggio.
            TitleINx = " Tasso indebitamento bancario a breve"      'Imposta il titolo
            DefaultINx = "10,25"                                    'Imposta il valore predefinito
            ValoreINx = InputBox(MessageINx, TitleINx, DefaultINx)  'Visualizza il messaggio, il titolo e il valore predefinito
        Loop Until IsNumeric(ValoreINx)
             Num = ValoreINx
     End Sub
    LM

  7. #7
    A quanto ho capito la richiesta di Pascan è un controllo su quanto digitato nell'inputbox senza una successiva validazione.

    A quanto ne so, l'inputbox e' alquanto limitata per quanto riguarda il controllo di quanto inserito (solo per inserire asterischi tipo password bisogna ricorrere al subclassing VVoVe: ) per cui mi sento (IMHO) di condividere l'opinione di MItaly in merito alla creazione di un form "ad hoc" .

    Anche perche':
    IsNumeric è pieno di bugs e per nulla affidabile
    La soluzione proposta da Tippolo è applicabile solamente alle TextBox, non alle InputBox.

    Ciauz

    Chico

  8. #8
    Originariamente inviato da chico62
    IsNumeric è pieno di bugs
    Tipo?
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    123.22.33.555.444
    1234.22,3.3

    Entrambe le stringe restituiscono True con IsNumeric....

    Ciauz

    Chico

  10. #10
    Credo che dipenda dal fatto che IsNumeric (come pure le varie Cxxx, come CDbl) con le impostazioni Italiane ignorano il punto considerandolo come separatore delle migliaia che ha significato solo per l'utente.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.