Bonjour On peut effectivement créer des contrôles dans une BDD de manière dynamique. C'est quand même mieux que de tous les créer avant et de rendre visibles ceux que l'on souhaite. Surtout quand on ne sait pas combien il peut y en avoir.
Quelques pistes que j'ai essayées récemment. Pour chaque type d'objet à créer je crée un SUB. En fonction du type d'objet (bouton, label, liste...), l'instance à créer change. On trouvera ici les différents types : http://api.openoffice.org/docs/common/ref/com/sun/star/awt/module-ix.htm l Dans la procédure de construction, en fonction de ce que je veux construire, j'appelle le SUB idoine. Ci-dessous, un SUB d'ajout de bouton et un SUB de construction dynamique qui fabrique N boutons dans la DLG. Dlg représente l'objet boîte de dialogue (défini donc en global) Sub construction n=10 ecartVert=14 'écart vertical entre boutons departVert=44 'point de départ vertical du premier bouton For i=1 to n AjoutBouton ( dlg ,"NomBouton" & i ,3 ,departVert-3 + (i-1)*ecartVert ,i) next End sub Sub AjoutBouton ( dialogue as object,nomBouton as string, positionX as integer,positionY as integer) Dim oDialogModel As Object , oButtonModel As Object NomObj = nomBouton oDialogModel = dialogue.Model 'Définit le modèle d'objet à ajouter 'http://api.openoffice.org/docs/common/ref/com/sun/star/awt/module-ix.ht ml oButtonModel = oDialogModel.createInstance( "com.sun.star.awt.UnoControlButtonModel" ) With oButtonModel .Name = NomObj .Label = "affecter" .PushButtonType="STANDARD" .Tabstop = True .PositionX = positionX 'position horizontale .PositionY = positionY 'position verticale .Width = 27 'largeur .Height = 14 'hauteur End With oDialogModel.insertByName( NomObj , oButtonModel ) 'ici c'est un listener qui permet après d'intercepter un clic sur le bouton et d'éxécuter une macro. Pour cela il faut que la macro s'appelle nomDuBouton_actionPerformed oButtonControl = dialogue.getControl( NomObj ) cEventListenerName =NomObj oActionListener = CreateUnoListener( cEventListenerName + "_", "com.sun.star.awt.XActionListener" ) oButtonControl.addActionListener( oActionListener ) End Sub -----Message d'origine----- De : news [mailto:[EMAIL PROTECTED] De la part de Philippe Pons Envoyé : samedi 16 février 2008 12:38 À : prog@fr.openoffice.org Objet : Re: [prog] How to: Ajouter dynamiquement un controle à un dialogue? François Breizh <francois.breizh <at> orange.fr> writes: > > > Il est possible de définir tous les contrôles nécessaires puis de > modifier leur visibilité par programmation avec > <controle>.Model.visible = True ou False > > Non ? > Oui, effectivement c'est une solution. Merci, Philippe --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]