Buongiorno, vorrei gestire l'input derivante da un lettore barcode in un edittext, in VB6 c'èl a possibilità di intercettare il carattere, esempio il crlf, suppongo ci sia anche in B4A ma non ho trovato nulla, solo attivare la procedura tramite un tasto comando .
mi spiego, a lettura del codice che finisce con crlf vorrei che mi si attivasse un evento button_click
Non so usando un lettore di codici a barre ma le EditText hanno l'evento TextChanged.
Leggi l'ultimo carattere del parametro New, che è una stringa, e confrontalo con la costante CRLF. In caso di "uguaglianza" esegui una CallSub alla routine che ti interessa (CallSub(Me, NomeRoutine))
Grazie per la risposta, mi spiego meglio, leggo il codice, lo vedo fisicamente sulla edittext ( non mi rende il crlf) , quando non ho più input mi deve attivare la sub desiderata
ora devo leggere e poi agire su di un bottone
ho collegato lo scanner ad un pc e si invia il crlf, quindi devo Solo intercettare l'ultimo carattere, è da poco che uso B4A, saranno banalità ma ...
Sarebbe meglio che chiamasse una routine, non la routine evento ButtonX_Click (anche se funziona lo stesso, ovviamente).
In B4X, la costante CRLF corrisponde al singolo carattere Chr(10), mentre in altri ambienti/linguaggi è Chr(13)Chr(10).
Prova ad utilizzare il codice che allego, in cui la ricezione del testo nella EditText è solo simulata.
Se non dovesse andare bene, prova impostando la variabile mEOL = CRLF.
Sarebbe meglio che chiamasse una routine, non la routine evento ButtonX_Click (anche se funziona lo stesso, ovviamente).
In B4X, la costante CRLF corrisponde al singolo carattere Chr(10), mentre in altri ambienti/linguaggi è Chr(13)Chr(10).
Prova ad utilizzare il codice che allego, in cui la ricezione del testo nella EditText è solo simulata.
Se non dovesse andare bene, prova impostando la variabile mEOL = CRLF.
scusa @LucaMs per mia curiosita' cosi secondo te potrebbe funzionare?
B4X:
Private Sub EditText1_TextChanged (Old As String, New As String)
'If New.Length < mEOL.Length Then Return
'Dim LastChar As String = New.SubString2(New.Length - mEOL.Length, New.Length)
'EditText1.Text.Trim.EndsWith=mEOL
If EditText1.Text.Trim.EndsWith(mEOL) Then
'If LastChar = mEOL Then
CallSub(Me, "MyRoutine")
End If
End Sub
Assolutamente sì; temporaneamente (spero ?) avevo dimenticato la funzione EndsWith
(a volte la fretta e il tentare di fare più cose contemporaneamente, quando non si ha più l'età...!).
Assolutamente sì; temporaneamente (spero ?) avevo dimenticato la funzione EndsWith
(a volte la fretta e il tentare di fare più cose contemporaneamente, quando non si ha più l'età...!).