Bonjour, J'ai trouvé comment rafraîchir les contrôles de la fenêtre ou plutôt j'ai compris que la fenêtre est un objet graphiquement figé qu'il fallait recharger à chaque modification de contrôle.
Pour ceux qui souhaitent créer une boîte de dialogue non modal, soit une fenêtre que l'on peut laisser sur le côté de l'écran pour travailler avec, voici la démarche : 1) créer une boîte dialogue avec l'éditeur (pour la démonstration on appelera cette boite "MonDialogue") et y insérer au minimum un bouton "masquer" et une zone de liste par exemple 2) copier-coller le code OOBasic suivant (code de Bob que j'ai réactualisé) : ------------------------------------------------------------------------------------------------------ Option Explicit Global ListeDialog(0) As String Global oDialogModel As Object Global oDialogControl As Object Global oDialogList As Object '------------------------------------------------------------------------------------------------------ 'Sub principale que je lance avec un bouton d'une barre d'outils Sub Main ' Chargement des librairies GlobalScope.DialogLibraries.LoadLibrary("Standard") GlobalScope.BasicLibraries.LoadLibrary ("Standard") 'Création du service boîte de dialogue oDialogModel = createUnoService("com.sun.star.awt.UnoControlDialogModel" ) 'Définition de la variable oDialogControl en tant que boîte de dialogue "MonDialogue" de l'éditeur oDialogControl = createUnoDialog(DialogLibraries.Standard.MonDialogue) 'Création de la boîte de dialogue graphique figée - définition de la variable oDialogControl en tant que telle. oDialogControl.setModel(oDialogModel) oDialogControl.setVisible(true) '------------------------------------------------------------------------------------------------------ 'Sub associée à un bouton ou à un évenement sur la zone de liste Sub ModificationZoneListe() 'définition d'un variable tableau pour contenir les éléments de la zone de liste Dim ListeDialog() 'fermeture de la boîte de dialogue graphique figée oDialogControl.setVisible(false) 'redefinition de la variable oDialogControl en tant que boîte de dialogue de l'éditeur oDialogControl = createUnoDialog(DialogLibraries.Standard.DialogCCTP) 'définition de la variable oDialogList en tant que l'objet zone de liste nommée "ZoneListe" oDialogList = oDialogControl.getControl("ZoneListe") ' Saisir ici le traitement des informations de la zone de liste - modification de la variable ListeDialog() ' ' Vidage des éléments contenus dans la zone de liste oDialogList.removeItems(0,oDialogList.getItemCount()) ' Remplissage de la zone de liste avec la variable ListeDialog() oDialogList.addItems(ListeDialog(),0) 'Création de la boîte de dialogue graphique figée oDialogControl.setModel(oDialogModel) oDialogControl.setVisible(true) End Sub '------------------------------------------------------------------------------------------------------ ' Sub associée au bouton "Masquer" Sub MasquerDialog() oDialogControl.setVisible(false) end sub '------------------------------------------------------------------------------------------------------ Il reste encore plusieurs points a chercher : - pouvoir fermer la fenêtre avec la croix de la barre de titre plutôt qu'un bouton - mémoriser l'emplacement de la fenêtre pour éviter que celle-ci réapparaisse au milieu de l'écran - pouvoir modifier la taille de la fenêtre ... Bon codage à tous ! Gwénaël Envoyez vos cartes de voeux depuis www.laposte.net Elles seront ensuite distribuées par le facteur : pratique et malin !