FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017  Ajouter une question

 

Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).

Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.


SommaireProgrammation OBasicLes boîtes de dialogue BASIC (25)
précédent sommaire suivant
 

Les boîtes de dialogue permettent de créer une interface utilisateur adaptée à votre projet. Vous pouvez y ajouter des contrôles afin d'effectuer des saisies depuis ce support personnalisé ou pour visualiser des informations.

Pour créer une boîte de dialogue :

placez-vous dans l'éditeur de macros ;
faites un clic-droit dans la barre d'onglets des modules, en bas de la page ;
sélectionnez l'option « Insérer » dans la liste déroulante ;
sélectionnez « Boîte de dialogue BASIC ».

Placez cette macro dans un module.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Global oDialog1 As Object 
  
Sub AfficherBoiteDialogue 
  
  DialogLibraries.LoadLibrary( "Standard" ) 
  'Dialog1 est le nom de la Form (clic-droit sur l'objet / propriétés / onglet Général / Nom) 
  oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 ) 
  
  'Attribue un titre dans la fenêtre 
  odialog1.Title = "Le titre" 
  
  'Modifie la couleur de fond de la boîte de dialogue 
  oDialog1.Model.BackgroundColor = RGB(235,235,125) 
  
  'Redéfinit les dimensions de la boîte de dialogue  
  oDialog1.Model.Height = 200 'Hauteur 
  oDialog1.Model.Width =400 'Largeur 
  
  'Redéfinit les position de la boîte de dialogue à l'écran 
  oDialog1.Model.PositionX = 0 'Position horizontale 
  oDialog1.Model.PositionY = 100 'Position verticale 
  
  
  'Affiche la boîte de dialogue 
  oDialog1.Execute() 
  
End Sub
Pour fermer la boîte de dialogue par macro, utilisez :
Code vb : Sélectionner tout
1
2
3
4
5
6
7
Sub FermetureFormBasic 
  'Ferme la boîte de dialogue 
  oDialog1.endExecute 
  
  'Libère les ressources   
  oDialog1.Dispose 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long 
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long,ByVal nIndex As Long) As Long 
  
Private Const Largeur As Long = 8 
Private Const Hauteur As Long = 10 
  
  
Sub affichageBoiteDialogue_adapterTailleEcran 
  Dim Hdc As Long , H As Long , V As Long 
  Dim oDialog1 As Object 
  
  Hdc = GetDC(0) 
  
  DialogLibraries.LoadLibrary( "Standard" ) 
  oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 ) 
  
  H = GetDeviceCaps(Hdc, Largeur) 
  V = GetDeviceCaps(Hdc, Hauteur)-50 
  iXPos = 0  
  iYPos = 0  
  
  oDialog1.setPosSize(iXPos, iYPos, H, V, com.sun.star.awt.PosSize.POSSIZE) 
  
  oDialog1.Execute() 
  
  'Ferme la boîte de dialogue 
  oDialog1.endExecute 
  
  'Libère les ressources   
  oDialog1.Dispose  
End Sub

Mis à jour le 2 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
Sub ListerNomsDialogues 
  Dim Tableau() As String 
  Dim i As Integer 
  
  Tableau = DialogLibraries.Standard.getElementNames() 
  
  For i = 0 To UBound(Tableau) 
    Msgbox Tableau(i) 
  Next i 
End Sub

Mis à jour le 2 août 2013 SilkyRoad

La variable oDialog1 est supposée déclarée en type « Global » lors du lancement de la boîte de dialogue.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
Sub BoucleControles 
  Dim Tableau() 
  Dim i As Integer 
  
  Tableau = oDialog1.Controls 
  
  For i = 0 To UBound(Tableau) 
    MsgBox Tableau(i).Model.Name & " --> " & Tableau(i).ImplementationName 
  Next i 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Cet exemple crée dynamiquement une listBox dans la boîte de dialogue en cours d'affichage.
Ajoutez préalablement un bouton dans la boîte de dialogue et associez-y la macro suivante :

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub AjoutListBox 
  Dim oDialogModel As Object , oListBoxModel As Object 
  Dim NomObj As String 
  Dim i As Integer 
  Dim oActionListener As Object 
  
  NomObj = "NomListBox" 
  
  oDialogModel = oDialog1.Model 
  'Définit le modèle d'objet à ajouter (ListBox) 
  'http://api.openoffice.org/docs/common/ref/com/sun/star/awt/module-ix.html 
  oListBoxModel = oDialogModel.createInstance( "com.sun.star.awt.UnoControlListBoxModel" ) 
  
  With oListBoxModel 
    .Name = NomObj 
    .PositionX = 80 'position horizontale 
    .PositionY = 10 'position verticale 
    .Width = 50 'largeur 
    .Height = 100 'hauteur 
  End With 
  
  'Ajoute la ListBox dans la boîte de dialogue 
  oDialogModel.insertByName( NomObj , oListBoxModel ) 
  
  For i = 1 To 10 
    'Ajout des données dans la ListBox 
    oDialog1.getControl( NomObj ).AddItem ("Donnée" & i , i - 1 ) 
  Next i 
  
  'Association des évènements à l'objet créé dynamiquement 
  oActionListener = createUnoListener("ListBox_", "com.sun.star.awt.XActionListener") 
  oDialog1.getControl( NomObj ).addActionListener( oActionListener ) 
  
End Sub 
  
  
  
'--- Les évènements de la ListBox 
Sub ListBox_disposing(oEvent) 
End Sub 
  
'Affiche le contenu de la ligne sélectionnée lors d'un double clic 
Sub ListBox_actionPerformed(oEvent) 
  MsgBox oEvent.Source.SelectedItem & " Ligne: " & oEvent.Source.SelectedItemPos + 1 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Contacter le responsable de la rubrique OpenOffice & LibreOffice