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" <christophe.devall...@ac-rouen.fr>
À: prog@fr.openoffice.org
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: prog-unsubscr...@fr.openoffice.org
For additional commands, e-mail: prog-h...@fr.openoffice.org

Répondre à