Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    vb6 evento keycode e tastierino numerico

    Ciao a tutti
    Ho impostato l'evnto keycode in modo da evitare che qulcuno posa inserire testo invece di lettere
    il problema che funziona solo se uso i numeri sotto i comandi f1 f2 etc,se uso quelli del tastierino numerico me lo rileva come lettera come mai????
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    hai ustao l'evento keydown? come l'hai impostato?

  3. #3
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    Devono essere solo numeri interi, o l'utente può inserire pure decimali?

    posta il codice.

  4. #4
    Utente di HTML.it L'avatar di Melly
    Registrato dal
    Mar 2003
    Messaggi
    222
    ci sono le api di windows che ti permettono di inserire ad esempio in una text solo valori numeri.

    l'unico intoppo è che non ti permette di inserire la virgola per i decimali
    codice:
    Declare Function GetWindowLongA Lib "user32"
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Declare Function SetWindowLongA Lib "user32" 
    (ByVal hwnd As Long, ByVal nIndex As Long, 
    ByVal dwNewLong As Long) As Long
    Global Const GWL_STYLE = (-16)
    Global Const ES_NUMBER = &H2000&
    
    Sub CampoSoloNumeri(HwndCampoTesto As Long)
        Dim Estyle As Long
        Dim X As Long
    
        Estyle = GetWindowLongA(HwndCampoTesto, GWL_STYLE)
        Estyle = Estyle Or ES_NUMBER
        X = SetWindowLongA(HwndCampoTesto, GWL_STYLE, Estyle)
    
    End Sub
    se invece devi inserire anche numeri decimali puoi fare così

    codice:
    Public Function CampiDecimali(myAsciiCode As Integer) As Integer
     If myAsciiCode >= 48 And myAsciiCode <= 57 _
    Or myAsciiCode = 46 Or myAsciiCode = 8 Then
        'Carattere valido
            CampiDecimali = myAsciiCode
        ElseIf myAsciiCode = 44 Then
            CampiDecimali = 46
        'Carattere non valido
        Else
            CampiDecimali = 0
        End If
        
        
    End Function
    e richiamarla nella text interessata in questo modo
    codice:
    Private Sub txtErrata_KeyPress(KeyAscii As Integer)
    KeyAscii = CampiDecimali(KeyAscii)
    End Sub
    Aiutami a ritrovare l’interesse per le piccole cose che sono alla base di tutte le promesse del futuro che cresce, perché sono le sfumature a dare vita ai colori e a farci tornare in mente le cose più pure dei giorni migliori

  5. #5
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    ci sono le api di windows che ti permettono di inserire ad esempio in una text solo valori numeri.
    non ti sembra eccessivo utilizzare le API per una cosa così banale?

    Guarda qui:

    codice:
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
    End Sub

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    ho risolto gia ma mi avevano risposto qui ke fine ha fatto la risposta?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.