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

    [vb6]Gestire il punto(.) nelle TextBox

    Salve ragazzi,
    vorrei gestire il punto nelle TextBox. In pratica vorrei che nelle TextBox il punto(.) venga eliminato o ignorato se l'utente lo digita...quindi se scrivo:

    codice:
    Private Sub Text1_Change()
    If (Text1.Text = ".") Then
    MsgBox "Il carattere punto(.) non è valido"
    End If
    End Sub
    Questo codice è esatto(o almeno fatemelo passare per buono) se inserisco il punto subito. Se inserisco prima 1 o 2 o 3 numeri, il codice non viene accettato. Come posso risolvere?
    Poi vorrei che quando l'utente inserisce il punto(.), venga cancellato solo il punto(.) e non anche tutti i numeri scritti prima; visto che se scrivo:

    codice:
    Text1.Text = ""
    Cancella tutto!


    Vi ringrazio in anticipo!

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Per questi casi non si usa l'evento Change, ma l'evento KeyPress():

    codice:
    If KeyAscii = Asc(".") Then
        KeyAscii = 0
    End If

    Giusto per informazione:
    Ovvio che il tuo codice funziona solo alla prima digitazione:
    If (Text1.Text = ".") Then
    presuppone che il textbox contenga solo 1 carattere (il punto).


  3. #3
    Grazie mille gibra!

  4. #4
    Mica è possibile effettuare questo controllo anche in una InputBox???

  5. #5
    No, su una InputBox non hai il controllo al momento della digitazione; al massimo puoi verificare se il risultato contiene dei punti a posteriori, usando ad esempio la funzione InStr.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Allora in poche parole ecco cosa inserisco nel mio programma per chiedere dati all'utente:

    codice:
    Do
    n = InputBox("Quanti libri vuoi caricare?")
    Loop While n > 10
    For i = 1 To n
    Libri(i) = InputBox ("Inserisci Nome Libro")
    Codice(i) = InputBox("Inserisci Codice")
    Prezzo(i) = InputBox("Inserisci Prezzo")
    Next i

    Quindi se io voglio controllare il prezzo, cioè che venga accettato solo la virgola(,) e non il punto(.), come posso risolvere???


    Grazie!

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non si fa così, ovvero NON si usa un InputBox(), che può essere al massimo utilizzata per chiedere una stringa senza alcun controllo.
    Volerlo fare con l'InputBox() sarà un bagno di sangue (inutile, oltre che sbagliato) quindi tutta fatica sprecata.

    Devi creare un'altro form con i tre campi, in cui l'utente inserice i dati di UN solo libro per volta.
    Poi metti :
    - un pulsante Registra che registra i dati del libro inserito, svuota i campi e le variabili così da permettere all'utente di aggiungere quanti libri vuole.
    - un pulsante Chiudi per terminare.

  8. #8
    Ok gibra seguirò il tuo consiglio...ma ho inserito il codice e quindi chiesto come poter risolvere o almeno capire come usare la funzione InStr, perchè MItaly ha scritto che potevo controllare il risultato successivamente; quindi voglio solo capire come agisce questa funzione con un esempio, tutto qui. Grazie!

  9. #9
    Letta la documentazione della funzione InStr?
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Si ho letto, ma non so usarla. Esempio:

    codice:
    If InStr(1, Text1.text, "esempio") > 0 Then
    msgbox "La parola è presente"
    End iIf
    Così mi dice se trovo quella determinata parola, ma come faccio per il punto(.)?


    Poi mi domandavo...si può disattivare il punto(.) intercettandolo?


    Grazie!

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.