Re: [utenti] Riassegnare il valore a un tasto
Paolo Mantovani wrote: Il martedì 2 settembre 2008 11:38:24 Tino l' arrotino ha scritto: Tino l' arrotino wrote: Ho dimenticato di specificare che sto utilizzando una TextBox in un documento nel modulo Base. Beh, mi spiace di aver perso tempo a fare prove inutili. Già spiace pure a me, anche perchè non mi serve una cosa cosi sofisticata, se si pigia il tasto sbagliato sego via tutto il testo e metto un messaggio di avvertimento, mi può bastare. Grazie dell' esempio mi è comunque utile. Ciao - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Il martedì 2 settembre 2008 11:38:24 Tino l' arrotino ha scritto: > Tino l' arrotino wrote: > > Paolo Mantovani wrote: > >> Tino l' arrotino ha scritto: > >>> Ritorna una eccezzione alla riga : > >>> oEvent.Source.setSelection(aOldSel) > >>> > >>> com.sun.star.lang.illegalArgumentException > >>> cannot coerence argument type during corereflection call > >> > >> hai collegato l'evento "testo modificato" alla routine? > > Ho dimenticato di specificare che sto utilizzando una TextBox in un > documento nel modulo Base. Beh, mi spiace di aver perso tempo a fare prove inutili. Comunque la strada rimane quella che ti ho indicato ma ci sono diversi problemi in più da risolvere. Se hai voglia di approfondire eccoti qualche traccia: 1) persistenza delle variabili Non essendoci un dialogo che mantiene in vita le variabili dovrai dichiararle come Global 2) ordine degli eventi Non c'è garanzia che l'ordine degli eventi text_modified e key_pressed sia lo stesso che nel dialogo, anzi, ho notato che è invertito (questo in realtà semplifica leggermente il codice) in ogni caso si tratta di un dettaglio di implementazione e potrebbe cambiare con le versioni di ooo o con la piattaforma. 3) in un textbox di un dialogo il testo può cambiare solo per un'immissione da parte dell'utente (escludendo la macro ovviamente). In un formulario invece il contenuto del textbox cambia anche quando si scorrono i record. Occorre gestire anche questa casistica. 4) inizializzazione delle variabili. In realtà questo problema dovrebbe scomparire risolvendo il 3) Comunque, tanto per completare il ragionamento: all'apertura del formulario occorre assegnare un valore iniziale congruo alle variabili che conservano la selezione e il testo del controllo. ciao Paolo M - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Tino l' arrotino wrote: Paolo Mantovani wrote: Tino l' arrotino ha scritto: Ritorna una eccezzione alla riga : oEvent.Source.setSelection(aOldSel) com.sun.star.lang.illegalArgumentException cannot coerence argument type during corereflection call hai collegato l'evento "testo modificato" alla routine? Ho dimenticato di specificare che sto utilizzando una TextBox in un documento nel modulo Base. Ciao - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Paolo Mantovani wrote: Tino l' arrotino ha scritto: Ritorna una eccezzione alla riga : oEvent.Source.setSelection(aOldSel) com.sun.star.lang.illegalArgumentException cannot coerence argument type during corereflection call hai collegato l'evento "testo modificato" alla routine? ho collegato agli eventi della TextBox : 'Tasto Premuto' la ruotine 'TextBox_KeyPressed' 'Testo modificato' la routine 'TextBox_TextModified' Ciao - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Tino l' arrotino ha scritto: > Ritorna una eccezzione alla riga : > oEvent.Source.setSelection(aOldSel) > > com.sun.star.lang.illegalArgumentException > cannot coerence argument type during corereflection call hai collegato l'evento "testo modificato" alla routine? ciao Paolo - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
mg wrote: PER FAVORE NON SCRIVETE PIU' A QUESTO INDIRIZZO L'INTERESSATO NON C'E' PIU' - To unsubscribe, e-mail: [EMAIL PROTECTED] Vedo che hai scritto in replica al mio messaggio, quindi penso di esser stato io a scrivere all' indirizzo da te citato ma non saprei come visto che nella mia rubrica non ho indirizzi. Domanda, se l' interessato non c'è più non potresti toglierlo dalla ML ?. ciao - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Tino l' arrotino ha scritto: Ho modificato cosi il codice che mi hai passato ma in questo modo resetto il testo nella textbox, cosi non và, quello che cerco di fare è inibire alcuni tasti (quasi tutti) per controllare l' Input dell' utente. Dim sOldText As String Dim aOldSel as New com.sun.star.awt.Selection Dim sNewText As String Dim aNewSel As Object Sub TextBox_TextModified(oEvent as Object) sOldText = sNewText aOldSel = aNewSel sNewText = oEvent.Source.Text aNewSel = oEvent.Source.getSelection() End Sub Sub TextBox_KeyPressed(oEvent as Object) Select Case oEvent.KeyCode Case com.sun.star.awt.Key.A oEvent.Source.Text = sOldText oEvent.Source.setSelection(aOldSel) End Select End Sub - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] PER FAVORE NON SCRIVETE PIU' A QUESTO INDIRIZZO L'INTERESSATO NON C'E' PIU' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Ho modificato cosi il codice che mi hai passato ma in questo modo resetto il testo nella textbox, cosi non và, quello che cerco di fare è inibire alcuni tasti (quasi tutti) per controllare l' Input dell' utente. Dim sOldText As String Dim aOldSel as New com.sun.star.awt.Selection Dim sNewText As String Dim aNewSel As Object Sub TextBox_TextModified(oEvent as Object) sOldText = sNewText aOldSel = aNewSel sNewText = oEvent.Source.Text aNewSel = oEvent.Source.getSelection() End Sub Sub TextBox_KeyPressed(oEvent as Object) Select Case oEvent.KeyCode Case com.sun.star.awt.Key.A oEvent.Source.Text = sOldText oEvent.Source.setSelection(aOldSel) End Select End Sub - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Ritorna una eccezzione alla riga : oEvent.Source.setSelection(aOldSel) com.sun.star.lang.illegalArgumentException cannot coerence argument type during corereflection call Ciao - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [utenti] Riassegnare il valore a un tasto
Ciao Tino, Il lunedì 1 settembre 2008 17:15:29 Tino l' arrotino ha scritto: > TextBox ---> 'tasto premuto' assegno una macro che controlla che tasto > è stato premuto, nel Controllo TextBox. > > Sub KeyPress(oEvent as Object) > >Select Case oEvent.KeyCode > Case com.sun.star.awt.Key.A >Msg = "Ho premuto il tasto a/A" > >End Select > > End Sub > > > Adesso ho notizia che il Tasto a/A è stato premuto, adesso però vorrei > riasegnare la pressione del tasto 'a' per un tasto nullo cioè come se il > tasto non fosse stato premuto, girovagando per il web non ho trovato > quello che cercavo, suggerimenti o link che mi possono illuminare ? Quello che descrivi si potrebbe fare registrando un css.awt.KeyHandler anzichè un semplice KeyListener. Purtroppo il KeyHandler è supportato a livello di documento ma non a lvello di singolo controllo TextBox Usando il semplice keyListener (come stai già facendo) potresti comunque sostituire il carattere A appena inserito con una stringa vuota (o con qualsiasi altra stringa) , ma non è esattamente la stessa cosa che tu descrivi e cioè "come se il tasto non fosse stato premuto" Combinando un KeyListener e un TextListener (oppure collegando manualmente gli eventi "tasto premuto" e "testo modificato") si può ottenere una soluzione un po sporchina ma a mio avviso sufficientemente funzionale. Prova l'esempio qui sotto e fammi sapere. (ah, ovviamente declino ogni responsabilità, blablà eccetera) Ciao Paolo M -- REM * BASIC * Dim sOldText As String Dim aOldSel As Object Dim sNewText As String Dim aNewSel As Object Sub Main oDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1) oDlg.execute End Sub Sub TextBox_TextModified(oEvent as Object) sOldText = sNewText aOldSel = aNewSel sNewText = oEvent.Source.Text aNewSel = oEvent.Source.getSelection() End Sub Sub TextBox_KeyPressed(oEvent as Object) Select Case oEvent.KeyCode Case com.sun.star.awt.Key.A oEvent.Source.Text = sOldText oEvent.Source.setSelection(aOldSel) End Select End Sub - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[utenti] Riassegnare il valore a un tasto
TextBox ---> 'tasto premuto' assegno una macro che controlla che tasto è stato premuto, nel Controllo TextBox. Sub KeyPress(oEvent as Object) Select Case oEvent.KeyCode Case com.sun.star.awt.Key.A Msg = "Ho premuto il tasto a/A" End Select End Sub Adesso ho notizia che il Tasto a/A è stato premuto, adesso però vorrei riasegnare la pressione del tasto 'a' per un tasto nullo cioè come se il tasto non fosse stato premuto, girovagando per il web non ho trovato quello che cercavo, suggerimenti o link che mi possono illuminare ? Ciao - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]