Bon, décidément, le format brut coupe le lien ! Tant pis !
Pour excuser ma pollution de mail, voici un deuxième sub de
construction. Pour une zone de texte cette fois :

Sub AjoutLabel ( dialogue as object,nomLabel as string, positionX as
integer,positionY as integer, numero as integer,largeur as integer,
hauteur as integer,contenu as string )
  Dim oDialogModel As Object , oLabelModel As Object 
  NomObj = nomLabel & numero
  oDialogModel = dialogue.Model
  oLabelModel = oDialogModel.createInstance(
"com.sun.star.awt.UnoControlFixedTextModel" )
  
  With oLabelModel
    .Name = NomObj
    .Label = contenu
    .Tabstop = True
    .Tabindex = num_case + 3 ' il y a déjà 3 boutons dans le dialogue =>
on augmente l'index de 3
    .PositionX = positionX 'position horizontale
    .PositionY = positionY 'position verticale
    .Width = largeur 'largeur
    .Height = hauteur 'hauteur
  End With

  oDialogModel.insertByName( NomObj , oLabelModel )
End Sub

Les différentes propriétés (.name, .label, ...)  sont listées dans le
lien (tronqué!!!) des msg précédents en fonction de l'objet créé.
-------------
Pascal


-----Message d'origine-----
De : chaliapine [mailto:[EMAIL PROTECTED] 
Envoyé : samedi 16 février 2008 15:02
À : prog@fr.openoffice.org
Objet : [prog] RE : [prog] How to: Ajouter dynamiquement un controle à
un dialogue?

Problème de lien dans mon message précédent, extension html (vous aurez
sûrement corrigé, mais bon...) :
http://api.openoffice.org/docs/common/ref/com/sun/star/awt/module-ix.htm
l


-------------
Pascal


-----Message d'origine-----
De : chaliapine [mailto:[EMAIL PROTECTED] 
Envoyé : samedi 16 février 2008 14:58
À : prog@fr.openoffice.org
Objet : [prog] RE : [prog] How to: Ajouter dynamiquement un controle à
un dialogue?

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]




---------------------------------------------------------------------
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]

Répondre à