Sempre a proposito di folder
Moderator: Enrico Maria Giordano
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
Sempre a proposito di folder
Grazie anzitutto ad EMG per la dritta precedente.
Dopo arduo lavoro con i folder mi sono accorto - arghhh - che utilizzando il tasto Enter all'interno del folder il focus non viene passato al campo successivo.
Per esempio se ho il focus su una combobox e premo Enter, il focus non si muove sul campo successivo ma rimane sulla combobox.
Il problema non si verifica invece se i campi sono in una dialog anziché in un folder.
Ecco un self-contained che mostra il problema
www.softwarexp.co.uk/beta/test.zip
In pratica nell'esempio se premo invio il focus non si sposta.
Qualche idea ?
Sono abbastanza disperato in quanto trattandosi di un programma di contabilità è essenziale poter utilizzare la tastiera per tutta la sequenza di inserimento.
Marco
Dopo arduo lavoro con i folder mi sono accorto - arghhh - che utilizzando il tasto Enter all'interno del folder il focus non viene passato al campo successivo.
Per esempio se ho il focus su una combobox e premo Enter, il focus non si muove sul campo successivo ma rimane sulla combobox.
Il problema non si verifica invece se i campi sono in una dialog anziché in un folder.
Ecco un self-contained che mostra il problema
www.softwarexp.co.uk/beta/test.zip
In pratica nell'esempio se premo invio il focus non si sposta.
Qualche idea ?
Sono abbastanza disperato in quanto trattandosi di un programma di contabilità è essenziale poter utilizzare la tastiera per tutta la sequenza di inserimento.
Marco
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Sempre a proposito di folder
Basta premere TAB, che è il tasto standard di Windows per muoversi tra un controllo e l'altro e l'unico che funziona sempre (mentre l'Invio non può funzionare in vari casi come GET multiline, presenza di pulsante di default, etc.).
Comunque è inutile che io provi l'esempio in quanto se non funziona c'è poco da fare: o si modifica in qualche modo la classe TGet o TFolder (non saprei quale delle due) oppure si agisce a forza di SetFocus(), soluzioni entrambi inaccettabili.
EMG
Comunque è inutile che io provi l'esempio in quanto se non funziona c'è poco da fare: o si modifica in qualche modo la classe TGet o TFolder (non saprei quale delle due) oppure si agisce a forza di SetFocus(), soluzioni entrambi inaccettabili.
EMG
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
Il mio problema riguarda solo i combobox,
la cosa strana è che un combobox in una dialog passa al campo successivo premendo invio mentre in un folder non si muove.
Putroppo la maggior parte dei clienti è ormai abituata ad utilizzare il tasto invio dato che la schermata di inserimento era precedentemente in una dialog e questo era consentito.
Provo a sentire se Antonio ha qualche idea.
Grazie in ogni caso.
Saluti
Marco
la cosa strana è che un combobox in una dialog passa al campo successivo premendo invio mentre in un folder non si muove.
Putroppo la maggior parte dei clienti è ormai abituata ad utilizzare il tasto invio dato che la schermata di inserimento era precedentemente in una dialog e questo era consentito.
Provo a sentire se Antonio ha qualche idea.
Grazie in ogni caso.
Saluti
Marco
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
Antonio ha risolto il problema.
Approfitto per un piccolo quesito:
se ho il focus su una get e voglio che premendo invio (quindi il dato inserito viene accettato e si perde il focus) come faccio a trasferire il focus su un altro oggetto ?
Ho provato inserendo dopo l'oggetto GET oGet1
oGet1:bLostFocus={||oBtn:SetFocus()}
in modo da trasferire il focus al BUTTON oBtn
Però non funziona, ossia, l'operazion oBtn:SetFocus() viene eseguita ma il focus non viene trasferito.
Ho provato anche con oGet1:oJump=oBtn ma senza successo
Qualche suggerimento ?
Marco
Approfitto per un piccolo quesito:
se ho il focus su una get e voglio che premendo invio (quindi il dato inserito viene accettato e si perde il focus) come faccio a trasferire il focus su un altro oggetto ?
Ho provato inserendo dopo l'oggetto GET oGet1
oGet1:bLostFocus={||oBtn:SetFocus()}
in modo da trasferire il focus al BUTTON oBtn
Però non funziona, ossia, l'operazion oBtn:SetFocus() viene eseguita ma il focus non viene trasferito.
Ho provato anche con oGet1:oJump=oBtn ma senza successo
Qualche suggerimento ?
Marco
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
Eccolo su
www.softwarexp.co.uk/beta/testget.zip
In pratica quando parte il programma il focus è sulla prima Get (oGet1),
vorrei che premendo invio vada poi sul pulsante oBtnEnd.
Marco
www.softwarexp.co.uk/beta/testget.zip
In pratica quando parte il programma il focus è sulla prima Get (oGet1),
vorrei che premendo invio vada poi sul pulsante oBtnEnd.
Marco
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
Ok. Funziona, grazie 1000.
L'esempio che ti inviato era una semplificazione del problema in realtà la mia schermata di inserimento è costituita in sequenza da:
<oggetti nella dialog1 del folder>
combobox
get
get
combobox
get
browse
<oggetti nel folder ma fuori della dialog>
button
button
Il problema era che dall'ultima get il focus mi andava sul browse anziché sul button questo perché il browse è incluso nella dialog1 ed ha quindi una "priorità" rispetto al primo button esterno alla dialog.
Mi era rimasto solo questo problema per poter gestire l'inserimento dei dati anche senza dover necessariamente utilizzare il mouse, semplicemente premento invio.
Guardando la cosa da un punto di vista da programmatore il fatto di passare da un campo all'altro con invio è in effetti poco ortodossa ma dal punto di vista commerciale è veramente importante per un programma di contabilità che prevede un inserimento ripetuto di dati.
Ciao e grazie.
Marco
L'esempio che ti inviato era una semplificazione del problema in realtà la mia schermata di inserimento è costituita in sequenza da:
<oggetti nella dialog1 del folder>
combobox
get
get
combobox
get
browse
<oggetti nel folder ma fuori della dialog>
button
button
Il problema era che dall'ultima get il focus mi andava sul browse anziché sul button questo perché il browse è incluso nella dialog1 ed ha quindi una "priorità" rispetto al primo button esterno alla dialog.
Mi era rimasto solo questo problema per poter gestire l'inserimento dei dati anche senza dover necessariamente utilizzare il mouse, semplicemente premento invio.
Guardando la cosa da un punto di vista da programmatore il fatto di passare da un campo all'altro con invio è in effetti poco ortodossa ma dal punto di vista commerciale è veramente importante per un programma di contabilità che prevede un inserimento ripetuto di dati.
Ciao e grazie.
Marco
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
Il supporto del tasto di invio è stata nel mio caso una scelta originariamente dettata dalla necessità di mantenere le medesime operazioni che l'utente faceva con la versione DOS del mio applicativo per effettuare così una immediata migrazione al sistema Windows e non dover mantenere 2 piattaforme per un periodo transitorio.
Diverse società concorrenti hanno inoltre ancora pacchetti in DOS o (più frequente) DOS in finestra Windows (tipo quella modalità di migrazione ibrida presente nella prima versione di VO) ed ancora, ci sono software che operano in modalità terminale in remoto.
Vero che utilizzando il TAB si potrebbe passare da un campo al successivo mantenendo lo "standard" Windows, tuttavia il mio cliente tipico (o meglio il personale del mio cliente) inserisce centinaia di documenti al giorno e un conto è poterli inserire semplimente premendo invio, un altro è dover premere alla fine OK con il mouse o dover comunque utilizzare l'invio per confermare la registrazione dei dati.
Marco
Diverse società concorrenti hanno inoltre ancora pacchetti in DOS o (più frequente) DOS in finestra Windows (tipo quella modalità di migrazione ibrida presente nella prima versione di VO) ed ancora, ci sono software che operano in modalità terminale in remoto.
Vero che utilizzando il TAB si potrebbe passare da un campo al successivo mantenendo lo "standard" Windows, tuttavia il mio cliente tipico (o meglio il personale del mio cliente) inserisce centinaia di documenti al giorno e un conto è poterli inserire semplimente premendo invio, un altro è dover premere alla fine OK con il mouse o dover comunque utilizzare l'invio per confermare la registrazione dei dati.
Marco