Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451

    [VB] e 'Space'

    Ciao a tutti io uso questo codice per permettere solamente l'inserimento delle lettere e far diventare le lettere maiuscolo:

    If (KeyAscii > 32 And KeyAscii < 65 Or KeyAscii > 90 And KeyAscii < 97 Or KeyAscii > 122 And KeyAscii < 255) Then
    'è un numero quindi non scrivo nulla
    KeyAscii = 0
    Else
    KeyAscii = KeyAscii And 223
    End If

    Il problema è che ora non riesco a utilizzare lo space ma se elimino la riga di comando

    KeyAscii = KeyAscii And 223

    funziona tutto!!!

    Sapete come posso risolvere il mio problema???

    Grazie per il vostro aiuto.

  2. #2
    codice:
    If (KeyAscii > 32 And KeyAscii < 65 Or KeyAscii > 90 And KeyAscii < 97 Or KeyAscii > 122 And KeyAscii < 255) Then
    'è un numero quindi non scrivo nulla
      KeyAscii = 0
    Else
      KeyAscii = KeyAscii + 97 'trasforma la lettera in maiuscolo
    End If
    Se si tratta di VB6

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Originariamente inviato da Luciano79
    Se si tratta di VB6
    Pur se in buona fede, meglio accertarsene prima di rispondere, evitando di correre il rischio di scrivere una soluzione da scartare o non utilizzabile, premiando anche l'utente che non ha rispettato il Regolamento e non ha indicato quale versione del linguaggio utilizza.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    Chiedo scusa, si tratta di vb6

    Luciano79 ho provato il tuo codice ma non funziona... ecco cosa accede se provo a scrivere:

    abcde....
    ÂÃÄÅÆ....

  5. #5
    codice:
    If not(KeyAscii > 32 And KeyAscii < 65 Or KeyAscii > 90 And KeyAscii < 97 Or KeyAscii > 122 And KeyAscii < 255) Then
    'è un numero quindi non scrivo nulla
      KeyAscii = 0
      KeyAscii = KeyAscii - 32 'trasforma la lettera in maiuscolo
    End If
    PROVA QUESTO...

    Luciano79 si è confuso...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    niente lo space non funziona

  7. #7
    scusa:

    codice:
    If KeyAscii = 32 Then
    Label1.Caption = Label1.Caption & " "
    End If
    If Not (KeyAscii > 32 And KeyAscii < 65 Or KeyAscii > 90 And KeyAscii < 97 Or KeyAscii > 122 And KeyAscii < 255) Then
      KeyAscii = KeyAscii - 32 'trasforma la lettera in maiuscolo
    End If
    Label1.Caption = Label1.Caption & Chr(KeyAscii)
    ciao

  8. #8
    Ha ragione tossam... va tolto 32.
    In realtà non possiamo togliere quel valore a tutti i caratteri, ma solo alle lettere minuscole, altrimenti ti cambia tutto.
    Prova questo:

    codice:
        Select Case KeyAscii
            Case 32
            Case 65 To 90
            Case 97 To 122
                KeyAscii = KeyAscii - 32
            Case Else
                KeyAscii = 0
        End Select

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    Io avevo risolto con questo codice:

    codice:
    If (KeyAscii > 96 And KeyAscii < 123) Then
            KeyAscii = KeyAscii And 223
        ElseIf (KeyAscii > 64 And KeyAscii < 91 Or KeyAscii = 8 Or KeyAscii = 32 Or KeyAscii = 39) Then
            KeyAscii = KeyAscii
    Else
        KeyAscii = 0
    End If
    Ma devo dire che il tuo è molto più elegante


    Grazie a tutti.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    451
    Scusa se ti ridisturbo ma ho provato ad apportare una modifica al tuo codice:

    codice:
        Select Case KeyAscii
            Case 32
            Case 8
            Case 65 To 90
            Case 97 To 122
                KeyAscii = KeyAscii - 32
                Numero = ""
            Case 48 To 57
            Numero = Key
            Case Else
                KeyAscii = 0
        End Select
    Così che possa limitare la scritta di solo numeri nella variabile numero, ma non funziona infatti continua a scrivere anche le lettere e non capisco il perchè visto che gli do un valore nullo.

    Grazie per il tuo aiuto.

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.