En pièce jointe un code pour construire une barre d'outils avec Listbox, ComboBox, Champs date... etc. Tous les contrôles sont sur écoute (Big Brother) et renvois une info.
Je me suis fortement inspirer de ce lien Créer une zone de liste dans une barre d'outils. Et du suprême Gestion dynamique de dialogue J'ai tout pomper quoi !
Pour inviter des services UNO à travailler ensemble, il faut un script beanshell.
Le script BeanShell "listenercombiner.bsh" est dans le document joint. Pour la création de nouveau document, à condition qu'il ne soit pas utiliser sur plusieurs poste, ce script peut être copier dans le répertoire suivant
Ouvrir l'archive jointe et l'extraire dans le dossier beanshell. Si celui-ci n’existe pas, créer un nouveau dossier beanshell.~/openoffice/4/user/Script/beanshell/
Ensuite dans le module FancyToolbarSub il faut modifier l'adresse du script dans la macro main
modifier document dans la ligne suivante
Code : Tout sélectionner
oScript = ThisComponent.getScriptProvider("").getScript("vnd.sun.star.script:listenercombiner.listenercombiner.bsh?language=BeanShell&location=document")Code : Tout sélectionner
oScript = ThisComponent.getScriptProvider("").getScript("vnd.sun.star.script:listenercombiner.listenercombiner.bsh?language=BeanShell&location=user")Le script dans le document devient inutile.
Pour les fichiers vagabond, il faut suivre la procédure décrite dans le lien plus haut.
Dans le fichier Barre_BoiteDial_Calc_Exemple_1, il y a quatre modules.
- FancyToolbarSub Création de la barre, ne pas bricoler
Liste_Control Création des contrôles.
Listener Les écoutes.
Utils Les utilitaires et les futures macro appelé par les écoutes.
Code : Tout sélectionner
Call Construire (180, HautCtrl, PosX, PosY, oComboModel, "ComboBox1", "CBOX_", "Feuille2",0, TRUE)En principe, c'est simple comme un jeu de taquin
J'ai une petite question quand même à poser au GOoourOou. Comment rendre la main à la feuille après la prise de focus de la boite. Rendre le clavier actif sur la feuille, sans clic souris, seul moyen pour reprendre la main sur la feuille.
Dans l'exemple joint, quelques tentative mais sans succès. Une petite idée ?
Toute modifications, suggestions, questions, sont les bienvenue.
Cordialement
Luke


