Re: [utenti] Riassegnare il valore a un tasto

2008-09-02 Per discussione Tino l' arrotino

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

2008-09-02 Per discussione Paolo Mantovani
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

2008-09-02 Per discussione Tino l' arrotino

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

2008-09-02 Per discussione Tino l' arrotino

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

2008-09-02 Per discussione Paolo Mantovani
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

2008-09-02 Per discussione Tino l' arrotino

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

2008-09-01 Per discussione mg

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

2008-09-01 Per discussione Tino l' arrotino
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

2008-09-01 Per discussione Tino l' arrotino

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

2008-09-01 Per discussione Paolo Mantovani
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

2008-09-01 Per discussione Tino l' arrotino
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]