Usare il Punto del tastierino come Virgola

  1. 7 days ago

    Mau C

    Nov 8 Lecco

    Salve a tutti,
    In una listbox ho una cella dove inserisco un prezzo.
    Usando il tastierino numerico, battendo il tasto "." ovviamente esce un punto e non una virgola
    mi chiedevo come posso fare per fare in modo che il tasto "punto" del tastierino restituisca una "virgola"?
    Ovviamente vorrei evitare di agire sulle impostazioni della tastiera del sistema per non creare problemi ad altre applicazioni

  2. 6 days ago

    Enzo C

    Nov 8 Pre-Release Testers, Xojo Pro Answer

    io suo un modo molto semplice

    nell'evento CellLostFocus eseguo un format del val della cella

    es:
    se nella cella hai scritto 123.45

    nell'evento scrivo
    me.cell(row, column) = format(val(me.cell(row, column)), "-###,###,###.00")

    a questo punto la cella avrà come valore 123,45

  3. Massimiliano C

    is not verified Nov 8 Europe (Italy, Bergamo)

    fai così ... prendi la prima cosa che trovi ... qualsiasi oggetto che ha al suo interno l'evento 'keydown'
    nel codice scrivi msgbox(str(asc(key))) così vedi che cavolo di codice ha ..
    poi quando hai trovato il codice del tastierino numerico che corrisponde al punto ( guarda che su pc è un codice, su linux un'altro, su mac un'altro ancora... mettiamo caso i codici sono 65444 per mac, 125 per windows e 123 per linux

    Nell'evento keydown cancelli tutto e scrivi :

    select case asc(key)
    case 65444, 125, 123
    me.text = me.text + ","
    return false
    case else
    return true
    end select

    in pratica se digiti il '.' ma solo quello del tastierino numerico inserisce la virgola,
    se digiti invece qualsiasi altra cosa non fa nessuna altra azione.

    Ciao.

  4. Mau C

    Nov 8 Lecco

    Non funziona:
    innanzitutto il codice asc del punto del tastierino e della tastiera è lo stesso, su pc mi da il 46
    ma comunque
    se nel codice inserisco nell'istruzione case il 46
    qualsiasi tasto io prema non esce niente a meno che non prema il punto. in quel caso mi batte un punto prima del cursore e una virgola alla fine della stringa

  5. Mau C

    Nov 8 Lecco

    @Enzo C me.cell(row, column) = format(val(me.cell(row, column)), "-###,###,###.00")

    non è proprio quello che chiedevo ma tutto sommato risolve il problema
    grazie

  6. Maurizio R

    Nov 8 Pre-Release Testers, Xojo Pro

    Metodo Keyboard.AsyncKeyDown usato nell'evento KeyDown

  7. 5 days ago

    Antonio R

    Nov 9 Pre-Release Testers, Xojo Pro Europe (Italy)

    Consiglierei di memorizzare il valore sempre con il punto (double compatibile) e visualizzarlo con il format (locale e quindi da noi con la , )

  8. 4 days ago

    Massimiliano C

    is not verified Nov 10 Europe (Italy, Bergamo)

    select case asc(key)
    case 65444, 125, 123
    me.text = me.text + ","
    return true
    case else
    return false
    end select

    inverti i return true con return false ...

or Sign Up to reply!