It is currently 5 August 2021, 11:30 Advanced search

Intercettare INVIO

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Intercettare INVIO

Postby Paolo Manzoni » 28 July 2011, 8:10

Ciao a tutti!
Devo integrare l'uso di un bar code in una applicazione. Il bar code scrive le stringhe dei codici acquisiti e tra una stringa ed un'altra preme invio.
Vorrei intercettare INVIO per andare a capo nel pannello che uso per scaricare i codici.
Qualche idea?

Grazie

Paolo
Paolo Manzoni
 
Posts: 126
Joined: 26 October 2010, 10:58

Re: Intercettare INVIO

Postby m.sirri » 2 August 2011, 9:01

Per intercettare la pressione dei tasti c'è l'evento OnKeyPress a livello di applicazione, videata e pannello.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8483
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Intercettare INVIO

Postby Paolo Manzoni » 2 August 2011, 13:25

Grazie Matteo.
Con l'evento riesco correttamente ad intercettare la pressione del tasto INVIO però non riesco a posizionarmi su una nuova riga. e' un pannello IMDB e quando intercetto la pressione del tasto forzo il salvataggio dei dati e faccio pannello.insertRow(). Con una sola pressione del tasto INVIO non succede niente se non che il pannello mi va in stato modificato, con un'altra pressione mi salva i dati e si posiziona su una riga vuota...
E' un comportamento normale?Ho fatto una miriade di prove ma non trovo il modo per andare a capo con la pressione del tasto INVIO...
Grazie
Paolo Manzoni
 
Posts: 126
Joined: 26 October 2010, 10:58

Re: Intercettare INVIO

Postby d.pierangeli » 2 August 2011, 15:24

Abbiamo visto il problema in assistenza.
Il problema era dato dal fatto che la gestione della pressione del tasto viene fatta prima di acquisire i valori; perciò il pannello va in nuova riga, poi acquisisce i valori e si riporta sulla riga precedente (quella per cui ha acquisito i valori).

La soluzione consiste nell'utilizzare una variabile come semaforo; metterla a True nell'evento di KeyPress se viene premuto invio e nell'evento di AfterCommit se il semaforo è True portare il pannello in nuova riga e spegnere il semaforo.

L'evento di AfterCommit è utilizzabile in questo caso perchè il pannello è IMDB in auto-save, in altri casi bisognerà utilizzare altri eventi.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 7179
Joined: 30 September 2010, 15:35

Re: Intercettare INVIO

Postby lucabaldini » 30 September 2011, 18:36

Abbiamo corretto il problema relativo al KeyPress ed il fatto che arrivava prima della modifica dei dati del pannello.
Trovi qui le info: http://doc.progamma.com/?ARTID=5993578C-4905-4BD6-9249-728A6523B87D
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4775
Joined: 1 October 2010, 17:03
Location: Bologna


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Google [Bot] and 18 guests