Utilisation des boîtes de dialogue

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png



Les boîtes de dialogue Apache OpenOffice Basic sont constituées d'une fenêtre comprenant des champs de texte, des zones de liste, des boutons radio et autres éléments de contrôle.

Création de boîtes de dialogue

Vous pouvez créer et structurer des boîtes de dialogue à l'aide de l'éditeur de boîte de dialogue Apache OpenOffice :

Création et structuration de boîtes de dialogue à l'aide de l'éditeur de boîte de dialogue

Vous pouvez faire glisser les éléments de contrôle depuis la palette de conception (à droite) vers la zone de la boîte de dialogue et définir la position et la taille de ces éléments.

L'exemple illustre une boîte de dialogue contenant une étiquette et une zone de liste.

Boîte de dialogue contenant une étiquette et une zone de liste

Vous pouvez ouvrir une boîte de dialogue à l'aide du code suivant :

Dim Dlg As Object
 
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.DlgDef)
Dlg.Execute()
Dlg.dispose()

CreateUnoDialog crée un objet nommé Dlg qui fait référence à la boîte de dialogue associée. Avant de pouvoir créer une boîte de dialogue, vous devez vérifier que la bibliothèque qu'elle utilise (dans cet exemple, la bibliothèque Standard) est chargée. La méthode LoadLibrary accomplit cette tâche.

Une fois l'objet de la boîte de dialogue Dlg initialisé, vous pouvez afficher la boîte de dialogue à l'aide de la méthode Execute. Les boîtes de dialogue telles que celle-ci sont décrites comme modales, car elles ne permettent aucune autre action du programme avant leur fermeture. Lorsque cette boîte de dialogue est ouverte, le programme reste dans l'appel Execute.

À la fin du code, la méthode dispose approuve les ressources utilisées par la boîte de dialogue lorsque le programme se termine.

Fermeture des boîtes de dialogue

Fermeture par OK ou Annuler

Si une boîte de dialogue contient un bouton OK ou Annuler, elle se ferme automatiquement si vous cliquez sur l'un de ces boutons. Vous trouverez de plus amples informations sur l'utilisation de ces boutons au chapitre Détails des éléments de contrôle des boîtes de dialogue.

Si vous fermez une boîte de dialogue en cliquant sur OK, la méthode Execute- retourne la valeur 1 ; sinon, c'est la valeur 0 qui est retournée.

Dim Dlg As Object
 
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.MyDialog)
Select Case Dlg.Execute() 
Case 1
  MsgBox "Ok pressed"
Case 0 
  MsgBox "Cancel pressed"
End Select

Fermeture par le bouton de fermeture de la barre de titre

Vous pouvez fermer une boîte de dialogue en cliquant sur le bouton de fermeture de la barre de titre de la fenêtre de la boîte de dialogue. La méthode Execute de la boîte de dialogue retourne la valeur 0, comme si vous aviez appuyé sur le bouton Annuler.

Fermeture avec un appel de programme explicite

Vous pouvez également fermer une fenêtre de boîte de dialogue avec la méthode endExecute :

Dlg.endExecute()

Accès à des éléments de contrôle individuels

Une boîte de dialogue peut contenir autant d'éléments de contrôle que nécessaire. Vous pouvez accéder à ces éléments par l'intermédiaire de la méthode getControl qui retourne le nom de l'élément de contrôle.

Dim Ctl As Object
 
Ctl = Dlg.getControl("MyButton")
Ctl.Label = "New Label"

Ce code détermine l'objet de l'élément de contrôle MyButton, puis initialise la variable d'objet Ctl avec une référence à l'élément. Enfin, le code définit la propriété Label de l'élément de contrôle sur la valeur New Label.

Documentation note.png Contrairement aux identificateurs Apache OpenOffice Basic, les noms des éléments de contrôle respectent la casse.

Utilisation du modèle de boîtes de dialogues et d'éléments de contrôle

La séparation entre les éléments visibles du programme (Vue) et les données ou les documents sous-jacents (Modèle) se produit à de nombreux endroits dans l'API Apache OpenOffice. Outre les méthodes et les propriétés des éléments de contrôle, les objets des boîtes de dialogue et des éléments de contrôle présentent un objet Model subordonné. Cet objet permet d'accéder directement au contenu d'une boîte de dialogue ou d'un élément de contrôle.

Dans les boîtes de dialogue, la distinction entre les données et leur représentation n'est pas toujours aussi claire que dans d'autres zones de l'API Apache OpenOffice. Les éléments de l'API sont disponibles via les objets View et Model.

La propriété Model fournit un accès contrôlé par programme au modèle des objets de boîte de dialogue et d'élément de contrôle.

Dim cmdNext As Object
 
cmdNext = Dlg.getControl("cmdNext")
cmdNext.Model.Enabled = False

Cet exemple désactive le bouton cmdNtext de la boîte de dialogue Dlg à l'aide de l'objet Model à partir de cmdNtext.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools