Autore Topic: ValueBox  (Letto 3838 volte)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: ValueBox
« Risposta #15 il: 19 Febbraio 2009, 20:24:41 »
se vuoi proprio il codice asci puoi fare così:

Codice: [Seleziona]

PUBLIC SUB TextBox1_Change()




Label1.text = Asc(Right(TextBox1.Text, 1)) 'codice ascii
label2.text = key.Code 'codice tasto di sistema

END

 

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #16 il: 19 Febbraio 2009, 21:41:27 »
Citazione

fsurfing ha scritto:
se vuoi proprio il codice asci puoi fare così:

Codice: [Seleziona]

PUBLIC SUB TextBox1_Change()




Label1.text = Asc(Right(TextBox1.Text, 1)) 'codice ascii
label2.text = key.Code 'codice tasto di sistema

END

 


oppure puoi creare una textybox che contiene solo una lettera alla volta e poi dai il comando.

Codice: [Seleziona]

PUBLIC SUB TextBox1_Change()

Label1.text = Asc(TextBox1.Text)

END SUB

Offline tornu

  • Gran Maestro dei Gamberi
  • *****
  • Post: 855
    • Mostra profilo
Re: ValueBox
« Risposta #17 il: 19 Febbraio 2009, 23:48:38 »
Grazie giulio del suggerimento, ma per il momento mi tengo lo zero come mi consiglia il  buon Ceskho.
Il software è come il sesso, è meglio quando è libero. (Linus Torvalds)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #18 il: 19 Febbraio 2009, 23:58:36 »
:cappello:

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: ValueBox
« Risposta #19 il: 20 Febbraio 2009, 17:03:14 »
Ciao

Citazione

 fsurfing ha scritto:

se vuoi proprio il codice asci puoi fare così:

Codice: [Seleziona]

PUBLIC SUB TextBox1_Change()

Label1.text = Asc(Right(TextBox1.Text, 1)) 'codice ascii
label2.text = key.Code 'codice tasto di sistema

END


Facendo così controlli solo l'ultimo carattere del testo, ma mentre scrivi non è detto che tu sia alla fine del testo, puoi esserti spostato con le frecce.
Io voglio controllare i caratteri che si possono inserire, ho provato questo:

Codice: [Seleziona]

PUBLIC SUB TextQuant_KeyPress()
 IF Key.Code >= 48 AND Key.Code <= 57 THEN RETURN
 IF Key.Code = 8 THEN RETURN
 IF Chr$(Key.Code) = "." THEN RETURN
 Key.Code = 0  
END

.. ma key.Code = 0 è in sola lettura, mi basterebbe capire come annulare l'ultimo tasto premuto

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #20 il: 20 Febbraio 2009, 17:06:51 »
Ma non vedo il bisogno di annullare l'ultimo tasto...quando premi un nuovo tasto la variabile che ti restituisce il codice viene automaticamente sovrascritta...

Se scrivi a cosa ti serve il codice vedo se posso aiutarti meglio...

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: ValueBox
« Risposta #21 il: 20 Febbraio 2009, 17:32:02 »
Lo scopo sarebbe avere un textbox nel quale si possono digitare solo i caratteri "che dico io", ho capito che riesco a capire che carattere è stato inserito usando key.code ma come posso gestirlo?

Grazie ciao

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #22 il: 20 Febbraio 2009, 17:39:48 »
Key.Code è in sola lettura effettivamente. Ma se usi il tuo esempio togliendo la stringa

Codice: [Seleziona]

key.Code=0


funziona come vuoi tu?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #23 il: 20 Febbraio 2009, 17:42:56 »
L'ultimo esempio che mi viene in mente è questo. Provalo:

Codice: [Seleziona]
PUBLIC SUB TextQuant_KeyPress()

 DIM codice as integer

 codice = Key.Code
 IF codice >= 48 AND codice <= 57 THEN RETURN
 IF codice = 8 THEN RETURN
 IF Chr$(codice) = "." THEN RETURN
 codice = 0

END

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: ValueBox
« Risposta #24 il: 20 Febbraio 2009, 17:45:38 »
No, in vb c'era keyascii che assomigliava a key.code, allora sempre secondo esempio se la condizione era verificata usciva dalla sub altimenti l'ultima istruzione della sub eliminava il carattere appena premuto

Codice: [Seleziona]

PUBLIC SUB TextQuant_KeyPress()
 IF Key.Code >= 48 AND Key.Code <= 57 THEN RETURN
 IF Key.Code = 8 THEN RETURN
 IF Chr$(Key.Code) = "." THEN RETURN
 Key.Code = 0  
END

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #25 il: 20 Febbraio 2009, 17:57:07 »
E l'altro esempio funziona? quello con la variabile "codice" ?

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: ValueBox
« Risposta #26 il: 20 Febbraio 2009, 18:04:53 »
No se se vari il valore di "condice" vari solo una variabile da te impostata che non agisce sul sistema

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #27 il: 20 Febbraio 2009, 18:10:12 »
Sarà...a me pareva funzonasse

Offline ivosperi

  • Gamberetto
  • *
  • Post: 44
    • Mostra profilo
Re: ValueBox
« Risposta #28 il: 20 Febbraio 2009, 18:17:24 »
non è che non funziona
Ma non annulla l'ultimo carattere premuto se diverso da uno di quelli specificati
ciao

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: ValueBox
« Risposta #29 il: 20 Febbraio 2009, 18:26:32 »
Allora prova a fare:
Codice: [Seleziona]

PUBLIC SUB TextQuant_KeyPress()

 DIM codice as integer
 DIM a as string

 a = textQuant.Text
 codice = Key.Code
 IF codice >= 48 AND codice <= 57 AND codice = 8 AND Chr$(codice) = "."   THEN RETURN
 ELSE
 textQuant.text = a
 
END