Bonjour,
Le listener doit bien être enregistré auprès du champs texte mais la le type
d'objet et la méthode ne sont pas les bon.
Il faut utiliser un listener de type com.sun.star.awt.XKeyListener et la
méthode addKeyListener() du champs text.
Voici un exemple :
option explicit
sub registerKeyListener()
dim dialog as object
dialog = createUnoDialog(DialogLibraries.Standard.Dialog1)
dialog.getControl("tf").addKeyListener(createUnoListener("_klist_",
"com.sun.star.awt.XKeyListener"))
dialog.execute()
end sub
sub _klist_keyPressed(event as variant)
'nothing to do
end sub
sub _klist_keyReleased(event as variant)
dim control as object
control = event.source
if ((event.keyCode = com.sun.star.awt.Key.TAB) and (event.keyFunc =
com.sun.star.awt.KeyFunction.DONTKNOW) and (event.modifiers = 0)) then
control.text = control.text + chr(9)
end if
end sub
sub _klist_disposing(event as variant)
'nothing to do
end sub
Cordialement,
T. Vataire
----- Mail Original -----
De: "Christophe Devalland" <[email protected]>
À: [email protected]
Envoyé: Mardi 23 Mars 2010 13:16:21
Objet: [prog] invalider la tabulation dans un "textfield"
Bonjour,
je cherche à désactiver la perte du focus d'un champ texte contenu dans une
boite de dialogue lors d'un appui sur la tabulation.
je veux simplement que la tabulation s'affiche dans ce champ texte et qu'il
ne perde pas le focus.
je devine qu'il faut que je créer un listener de type XKeyHandler afin de ne
pas laisser passer la touche TAB à l'interface mais mon control ne possède
pas la méthode AddKeyHandler.
la seule interface de type listener disponible pour mon champ texte est
XTextComponent<http://api.openoffice.org/docs/common/ref/com/sun/star/awt/XTextComponent.html>(
http://api.openoffice.org/docs/common/ref/com/sun/star/awt/UnoControlEdit.html
)
ce code ne fonctionne donc pas :
Sub RegisterKeyHandler
oKeyHandler=createUnoListener("TexteFonction_","com.sun.star.awt.XKeyHandler")
dim champTextFieldNewFunction as Object
champTextFieldNewFunction=oDialogFunctions.GetControl("TextFieldNewFunction")
champTextFieldNewFunction.AddKeyHandler(oKeyHandler)
end sub
Faut-il que je tape plus haut dans la hiérarchie pour placer le Handler sur
un autre élément ?
J'ai essayé sur le dialog lui même mais sans succès.
Si vous avez des idées pour aboutir...
merci d'avance
--
Christophe Devalland
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]