Guide de programmation de StarOffice 8 pour BASIC
  Sök endast i den här boken
Ladda ner denna bok i PDF (1328 KB)

Chapitre 11 Boîtes de dialogue

Vous pouvez ajouter des fenêtres de boîte de dialogue et des formulaires personnalisés aux documents StarOffice. Ceux-ci peuvent, à leur tour, être liés à des macros StarOffice Basic afin d'en étendre les possibilités d'utilisation de façon considérable. Les boîtes de dialogue peuvent, par exemple, afficher les informations d'une base de données ou guider les utilisateurs lors d'un processus étape par étape de création d'un nouveau document sous la forme d'un assistant.

Utilisation des boîtes de dialogue

Les boîtes de dialogue StarOffice 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 des boîtes de dialogue à l'aide de l'éditeur de boîte de dialogue StarOffice dont le fonctionnement est identique à celui l'application StarOffice Draw :

Fenêtre de conception d'une boîte de dialogue StarOffice.

Faites glisser les éléments de contrôle de votre choix depuis la palette de conception (située à droite) vers la zone de la boîte de dialogue dans laquelle vous pourrez 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 comportant une étiquette et une zone de liste, en mode Conception.

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. Dans le cas contraire, la méthode LoadLibrary accomplit cette tâche.

Une fois que l'objet de la boîte de dialogue Dlg a été initialisé, vous pouvez utiliser la méthode Execute pour afficher la boîte de dialogue. 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 méthode dispose à la fin du code 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 lorsque vous cliquez sur l'un d'entre eux. Vous trouverez de plus amples informations sur l'utilisation de ces boutons à la section Détails des éléments de contrôle des boîtes de dialogue, plus loin dans ce chapitre.

Si vous fermez une boîte de dialogue en cliquant sur le bouton 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

Si vous le souhaitez, 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. Dans ce cas, 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.


Remarque –

StarOffice Basic fait la distinction entre les majuscules et les minuscules pour les noms des éléments de contrôle.


Utilisation du modèle des boîtes de dialogue et des é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 StarOffice. 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 ont un objet Model subordonné. Cet objet vous 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 StarOffice. Les éléments de l'API sont disponibles via les objets View et Model.

La propriété Model offre 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 du modèle à partir de cmdNtext.

Propriétés

Nom et titre

Chaque élément de contrôle possède son nom propre et peut être interrogé à l'aide de la propriété de modèle suivante :

  • Model.Name (String) : nom de l'élément de contrôle.

Vous pouvez spécifier le titre apparaissant dans la barre de titre d'une boîte de dialogue à l'aide de la propriété de modèle suivante :

  • Model.Title (String) : titre de la boîte de dialogue (s'applique uniquement aux boîtes de dialogue).

Position et taille

Vous pouvez interroger la taille et la position d'un élément de contrôle à l'aide des propriétés suivantes de l'objet Model :

  • Model.Height (long) : hauteur de l'élément de contrôle (en unités ma).

  • Model.Width (long) : largeur de l'élément de contrôle (en unités ma).

  • Model.PositionX (long) : position X de l'élément de contrôle, mesurée à partir de l'arête intérieure gauche de la boîte de dialogue (en unités ma).

  • Model.PositionY (long) : position Y mesurée à partir de l'arête intérieure supérieure de la boîte de dialogue (en unités ma).

Pour que les boîtes de dialogue conservent la même apparence d'une plate-forme à l'autre, StarOffice utilise l'unité interne Map AppFont (ma) qui permet de spécifier la position et la taille des éléments au sein des boîtes de dialogue. Une unité ma correspond au huitième de la hauteur moyenne d'un caractère de la police système définie dans le système d'exploitation et au quart de sa largeur. En utilisant les unités ma, StarOffice garantit qu'une boîte de dialogue aura la même apparence quels que soient le système et les paramètres du système.

Si vous souhaitez modifier la taille ou la position des éléments de contrôle au moment de l'exécution, déterminez la taille totale de la boîte de dialogue et réglez les valeurs des éléments de contrôle sur les rapports des parties correspondants.


Remarque –

Map AppFont (ma) remplace l'unité Twips pour obtenir une meilleure indépendance vis-à-vis des plates-formes.


Focus et séquence de tabulation

Vous pouvez naviguer dans les éléments de contrôle des différentes boîtes de dialogue en appuyant sur la touche de tabulation. Les propriétés suivantes sont disponibles dans ce contexte dans le modèle des éléments de contrôle :

  • Model.Enabled (Boolean) : active l'élément de contrôle.

  • Model.Tabstop (Boolean) : permet d'atteindre l'élément de contrôle à l'aide de la touche de tabulation.

  • Model.TabIndex (Long) : position de l'élément de contrôle dans l'ordre d'activation.

Enfin, l'élément de contrôle fournit une méthode getFocus permettant à l'élément de contrôle sous-jacent de recevoir le focus :

  • getFocus : l'élément de contrôle reçoit le focus (uniquement pour les boîtes de dialogue).

Boîtes de dialogue à plusieurs onglets

Dans StarOffice, une boîte de dialogue peut posséder plusieurs onglets. La propriété Step d'une boîte de dialogue définit l'onglet actif, tandis que la propriété Step d'un élément de contrôle spécifie l'onglet dans laquelle il doit s'afficher.

La valeur Step (si elle définie sur 0) constitue un cas à part. Si vous définissez cette valeur sur zéro dans une boîte de dialogue, tous les éléments de contrôle sont visibles, quelle que soit leur valeur Step. De même, si vous définissez cette valeur sur zéro pour un élément de contrôle, celui-ci s'affiche sur tous les onglets d'une boîte de dialogue.

Boîte de dialogue comportant plusieurs onglets, en mode Conception.

Dans l'exemple ci-dessus, vous pouvez également assigner la valeur Step (définie sur 0) à la ligne de séparation, ainsi que les boutons Annuler, Précédent, Suivant et Terminé pour afficher ces éléments sur tous les onglets. Vous pouvez également assigner ces éléments à un seul onglet (le premier, par exemple).

Le code suivant montre comment la valeur Step des gestionnaires d'événements des boutons Suivant et Précédent peut être augmentée ou réduite et modifie le statut de ces boutons.

Sub cmdNext_Initiated
   Dim cmdNext As Object
   Dim cmdPrev As Object

   cmdPrev = Dlg.getControl("cmdPrev")
   cmdNext = Dlg.getControl("cmdNext")

   cmdPrev.Model.Enabled = Not cmdPrev.Model.Enabled
   cmdNext.Model.Enabled = False

   Dlg.Model.Step = Dlg.Model.Step + 1
End Sub

Sub cmdPrev_Initiated
   Dim cmdNext As Object
   Dim cmdPrev As Object

   cmdPrev = Dlg.getControl("cmdPrev")
   cmdNext = Dlg.getControl("cmdNext")

   cmdPrev.Model.Enabled = False
   cmdNext.Model.Enabled = True

   Dlg.Model.Step = Dlg.Model.Step - 1
End Sub

Une variable globale Dlg faisant référence à une boîte de dialogue ouverte doit être ajoutée pour que cet exemple fonctionne. La boîte de dialogue change ensuite d'apparence de la façon suivante :

Onglet 1 :

Onglet 1 d'une boîte de dialogue comportant plusieurs onglets.

Onglet 2 :

Onglet 2 d'une boîte de dialogue comportant plusieurs onglets.

Événements

Les boîtes de dialogue et formulaires de StarOffice sont basés sur un modèle de programmation orienté événement dans lequel vous pouvez assigner des gestionnaires d'événements aux éléments de contrôle. Un gestionnaire d'événements exécute une procédure prédéfinie lorsqu'une action particulière se produit, même lorsque cette action est un autre événement. Grâce à la gestion d'événements, vous pouvez également éditer des documents ou des bases de données ouvertes, et accéder à d'autres éléments de contrôle.

Les éléments de contrôle de StarOffice reconnaissent divers types d'événements pouvant être déclenchés dans différentes situations. Ces types d'événements peuvent être répartis en quatre groupes :

  • Mouse control : événements correspondant à des actions effectuées à l'aide de la souris (des mouvements simples ou un clic sur un emplacement particulier de l'écran, par exemple).

  • Keyboard control : événements déclenchés par des séquences de touches.

  • Focus modification : événements exécutés par StarOffice lorsque des éléments de contrôle sont activés ou désactivés.

  • Control element-specific events : événements liés à certains éléments de contrôle.

Lorsque vous utilisez des événements, vérifiez que vous créez la boîte de dialogue associée dans l'environnement de développement de StarOffice et qu'elle contient les éléments de contrôle ou documents nécessaires (si les événements s'appliquent à un formulaire).

Boîte de dialogue avec deux zones de liste, en mode Conception.

La figure ci-dessus illustre l'environnement de développement de StarOffice Basic avec une boîte de dialogue contenant deux zones de liste. Vous pouvez déplacer les données d'une liste à l'autre en utilisant les boutons entre les deux zones de liste.

Pour afficher la mise en page à l'écran, vous devez créer les procédures StarOffice Basic associées afin qu'elles puissent être appelées par les gestionnaires d'événements. Bien que vous puissiez utiliser ces procédures dans tous les modules, il est préférable d'en limiter l'utilisation à deux modules. Pour simplifier la lecture de votre code, il est recommandé d'attribuer des noms significatifs à ces procédures. Le passage direct à une procédure générale du programme depuis une macro peut produire un code peu clair. Ainsi, afin de simplifier la maintenance et le dépannage des codes, créez plutôt une autre procédure servant de point d'entrée pour la gestion d'événements, même si elle n'exécute qu'un seul appel vers la procédure cible.

Le code de l'exemple suivant déplace une entrée de la zone de liste de gauche vers celle de droite dans une boîte de dialogue.

Sub cmdSelect_Initiated
   Dim objList As Object
   lstEntries = Dlg.getControl("lstEntries")
   lstSelection = Dlg.getControl("lstSelection")

   If lstEntries.SelectedItem > 0 Then
      lstSelection.AddItem(lstEntries.SelectedItem, 0)
      lstEntries.removeItems(lstEntries.SelectItemPos, 1)
   Else
      Beep
   End If
End Sub

Si cette procédure a été créée dans StarOffice Basic, vous pouvez l'assigner à un événement requis en utilisant la fenêtre des propriétés de l'éditeur de boîte de dialogue.

Boîte de dialogue d'assignation des événements aux macros.

La boîte de dialogue d'assignation répertorie toutes les procédures de StarOffice Basic. Pour assigner une procédure à un événement, sélectionnez la procédure et cliquez sur Assigner.

Paramètres

L'occurrence d'un événement particulier ne suffit pas toujours pour obtenir une réponse appropriée. D'autres informations peuvent s'avérer nécessaires. Par exemple, pour traiter un clic de souris, vous aurez certainement besoin de connaître la position du curseur à l'écran lors de l'appui sur le bouton.

Dans StarOffice Basic, vous pouvez utiliser des paramètres d'objet pour fournir à une procédure des informations supplémentaires concernant un événement, par exemple :

Sub ProcessEvent(Event As Object)

End Sub

La précision avec laquelle l'objet et les propriétés Event sont structurés dépend du type d'événement déclenché par l'appel de procédure. Les sections suivantes décrivent les types d'événements de façon détaillée.

Quel que soit le type d'événement, tous les objets donnent accès à l'élément de contrôle correspondant et à son modèle. L'élément de contrôle peut être atteint en utilisant

Event.Source

et son modèle en utilisant

Event.Source.Model

Vous pouvez utiliser ces propriétés pour déclencher un événement au sein d'un gestionnaire d'événements.

Événements de la souris

StarOffice Basic reconnaît les événements de souris suivants :

  • Mouse moved : l'utilisateur déplace la souris.

  • Mouse moved while key pressed : l'utilisateur déplace la souris tout en maintenant une touche enfoncée.

  • Mouse button pressed : l'utilisateur appuie sur un bouton de la souris.

  • Mouse button pressed : l'utilisateur relâche un bouton de la souris.

  • Mouse outside : l'utilisateur déplace la souris en dehors de la fenêtre active.

La structure des objets Event associés est définie dans la structure com.sun.star.awt.MouseEvent qui fournit les informations suivantes :

  • Buttons (short) : le bouton est enfoncé (une ou plusieurs constantes correspondant à com.sun.star.awt.MouseButton).

  • X (long) : coordonnée X de la souris, mesurée en pixels à partir de l'angle supérieur gauche de l'élément de contrôle.

  • Y (long) : coordonnée Y de la souris, mesurée en pixels à partir de l'angle supérieur gauche de l'élément de contrôle.

  • ClickCount (long) : nombre de clics associés à l'événement de la souris (si StarOffice peut répondre assez vite, ClickCount sera également égal 1 pour un double-clic, car un seul événement est déclenché).

Les constantes définies dans com.sun.star.awt.MouseButton pour les boutons de la souris sont :

  • LEFT : bouton gauche de la souris.

  • RIGHT : bouton droit de la souris.

  • MIDDLE : bouton du milieu de la souris.

Le résultat de l'exemple suivant permet de déterminer la position de la souris, ainsi que le bouton de souris qui a été enfoncé :

Sub MouseUp(Event As Object)
   Dim Msg As String
   Msg = "Keys: "
   If Event.Buttons AND com.sun.star.awt.MouseButton.LEFT Then
      Msg = Msg & "LEFT "
   End If
   If Event.Buttons AND com.sun.star.awt.MouseButton.RIGHT Then
      Msg = Msg & "RIGHT "
   End If
   If Event.Buttons AND com.sun.star.awt.MouseButton.MIDDLE Then
      Msg = Msg & "MIDDLE "
   End If
   Msg = Msg & Chr(13) & "Position: "
   Msg = Msg & Event.X & "/" & Event.Y
   MsgBox Msg
End Sub

Remarque –

Les événements VBA Click et Doubleclick ne sont pas disponibles dans StarOffice Basic. Vous pouvez donc utiliser l'événement StarOffice Basic MouseUp à la place de l'événement click et imiter l'événement Doubleclick en modifiant la logique de l'application.


Événements du clavier

Les événements de clavier suivants sont disponibles dans StarOffice Basic :

  • Key pressed : l'utilisateur appuie sur une touche.

  • Key released : l'utilisateur relâche une touche.

Les deux événements sont associés à des actions de touches logiques et non à des actions physiques. Si l'utilisateur appuie sur plusieurs touches afin d'obtenir un seul caractère (par exemple, pour ajouter un accent à un caractère), StarOffice Basic ne crée qu'un événement.

Une action unique sur une touche de modification, comme la touche MAJ ou ALT, ne crée pas d'événement indépendant.

Les informations relatives à une touche enfoncée sont indiquées par l'objet Event que StarOffice Basic fournit à la procédure pour la gestion des événements. Il contient les propriétés suivantes :

  • KeyCode (short) : code de la touche enfoncée (les valeurs par défaut correspondent à com.sun.star.awt.Key).

  • KeyChar (String) : caractère saisi (en tenant compte des touches de modification).

L'exemple suivant utilise la propriété KeyCode pour établir si l'utilisateur a appuyé sur la touche Entrée, la touche de tabulation ou sur l'une des autres touches contrôle. Si l'une de ces touches a été enfoncée, son nom est retourné ; sinon, c'est le caractère saisi qui est retourné :

Sub KeyPressed(Event As Object)
   Dim Msg As String
   Select Case Event.KeyCode
   Case com.sun.star.awt.Key.RETURN
      Msg = "Return pressed"
   Case com.sun.star.awt.Key.TAB
      Msg = "Tab pressed"
   Case com.sun.star.awt.Key.DELETE
      Msg = "Delete pressed"
   Case com.sun.star.awt.Key.ESCAPE
      Msg = "Escape pressed"
   Case com.sun.star.awt.Key.DOWN
      Msg = "Down pressed"
   Case com.sun.star.awt.Key.UP
      Msg = "Up pressed"
   Case com.sun.star.awt.Key.LEFT
      Msg = "Left pressed"
   Case com.sun.star.awt.Key.RIGHT
      Msg = "Right pressed"
   Case Else
      Msg = "Character " & Event.KeyChar & " entered"
   End Select
   MsgBox Msg
End Sub

Vous trouverez de plus amples informations sur les autres constantes du clavier dans la référence de l'API, dans le groupe de constantes com.sun.star.awt.Key.

Événements du focus

Les événements du focus indiquent si un élément de contrôle reçoit ou perd le focus. Par exemple, vous pouvez utiliser ces événements pour déterminer si un utilisateur a terminé le traitement d'un élément de contrôle de telle sorte que vous puissiez mettre à jour d'autres éléments d'une boîte de dialogue. Les événements de focus suivants sont disponibles :

  • When receiving focus : l'élément reçoit le focus.

  • When losing focus : l'élément perd le focus.

Les objets Event des événements de focus sont structurés de la façon suivante :

  • FocusFlags (short) : raison du changement de focus (la valeur par défaut correspond à com.sun.star.awt.FocusChangeReason).

  • NextFocus (Object) : objet recevant le focus (seulement pour l'événement When losing focus).

  • Temporary (Boolean) : le focus est temporairement perdu.

Événements propres à l'élément de contrôle

Outre les événements ci-dessus, qui sont pris en charge par tous les éléments de contrôle, il existe également certains événements spécifiques qui ne sont définis que pour certains éléments de contrôle. Les plus importants de ces événements sont :

  • When Item Changed : la valeur d'un élément de contrôle change.

  • Item Status Changed : le statut d'un élément de contrôle change.

  • Text modified : le texte d'un élément de contrôle change.

  • When initiating : action pouvant être exécutée lorsque l'élément de contrôle est déclenché (par exemple, lorsque l'utilisateur appuie sur un bouton).

Lorsque vous utilisez des événements, notez que certains d'entre eux, comme When initiating, peuvent être déclenchés chaque fois que vous cliquez avec la souris sur certains éléments de contrôle (par exemple, sur des boutons radio). Aucune action n'est exécutée pour vérifier si le statut de l'élément de contrôle a réellement été modifié. Pour éviter ce type d'"événement aveugle", enregistrez l'ancienne valeur de l'élément de contrôle dans une variable globale et vérifiez si la valeur est modifiée au moment de l'exécution d'un événement.

Les propriétés de l'événement Item Status Changed sont :

  • Selected (long) : entrée actuellement sélectionnée.

  • Highlighted (long) : entrée actuellement mise en évidence.

  • ItemId (long) : ID de l'entrée.

Détails des éléments de contrôle des boîtes de dialogue

StarOffice Basic reconnaît un ensemble d'éléments de contrôle qui peuvent être répartis dans les groupes suivants :

Champs de saisie :

  • Champs de texte

  • Champs de date

  • Champs horaires

  • Champs numériques

  • Champs monétaires

  • Champs adoptant tous les formats

Boutons :

  • Boutons standard

  • Cases à cocher

  • Boutons radio

Listes de sélection :

  • Zones de liste

  • Boîtes combinées

Autres éléments de contrôle :

  • Barres de défilement (horizontales et verticales)

  • Champs de groupes

  • Barres de progression

  • Lignes de séparation (horizontales et verticales)

  • Images

  • Champs de sélection de fichier

Les éléments de contrôle les plus importants sont présentés ci-après.

Boutons

Un bouton exécute une action lorsque vous cliquez dessus.

Le scénario le plus simple est celui au cours duquel le bouton déclenche un événement When Initiating lorsqu'un utilisateur clique dessus. Vous pouvez également lier une autre action au bouton pour qu'une boîte de dialogue s'ouvre en utilisant la propriété PushButtonType. Lorsque vous cliquez sur un bouton pour lequel cette propriété est définie sur la valeur 0, rien ne se passe au niveau de la boîte de dialogue. Lorsque vous cliquez sur un bouton pour lequel cette propriété est définie sur la valeur 1, la boîte de dialogue est fermée et la méthode Execute de la boîte de dialogue retourne la valeur 1 (la séquence de la boîte de dialogue s'est terminée correctement). Si la propriété PushButtonType a la valeur 2, la boîte de dialogue est fermée et la méthode Execute de la boîte de dialogue retourne la valeur 0 (boîte de dialogue fermée).

Vous trouverez ci-après toutes les propriétés disponibles par l'intermédiaire du modèle de bouton :

  • Model.BackgroundColor (long) : couleur d'arrière-plan.

  • Model.DefaultButton (Boolean) : le bouton est utilisé comme valeur par défaut et répond à la touche Entrée en l'absence de focus.

  • Model.FontDescriptor (struct) : structure spécifiant les détails de la police utilisée (correspondant à la structure com.sun.star.awt.FontDescriptor).

  • Model.Label (String) : étiquette affichée sur le bouton.

  • Model.Printable (Boolean) : l'élément de contrôle peut être imprimé.

  • Model.TextColor (Long) : couleur du texte de l'élément de contrôle.

  • Model.HelpText (String) : texte d'aide s'affichant lorsque vous déplacez le curseur de la souris au-dessus de l'élément de contrôle.

  • Model.HelpURL (String) : URL de l'aide en ligne pour l'élément de contrôle correspondant.

  • PushButtonType (short) : action liée au bouton (0 : pas d'action, 1 : OK, 2 : Annuler).

Boutons radio

Ces boutons sont généralement utilisés en groupes et vous permettent de choisir parmi une ou plusieurs options. Lorsque vous sélectionnez une option, toutes les autres options du groupe sont désactivées. De cette façon, il n'est possible de définir q'un seul bouton radio à la fois.

Un élément de contrôle d'un bouton radio fournit deux propriétés :

  • State (Boolean) : active le bouton.

  • Label (String) : étiquette affichée sur le bouton.

Vous pouvez également utiliser les propriétés suivantes à partir du modèle des boutons radio :

  • Model.FontDescriptor (struct) : structure contenant les détails de la police utilisée (correspondant à com.sun.star.awt.FontDescriptor).

  • Model.Label (String) : étiquette affichée sur l'élément de contrôle.

  • Model.Printable (Boolean) : l'élément de contrôle peut être imprimé.

  • Model.State (Short) : si cette propriété est égale à 1, l'option est activée ; sinon, elle est désactivée.

  • Model.TextColor (Long) : couleur du texte de l'élément de contrôle.

  • Model.HelpText (String) : texte d'aide s'affichant lorsque le curseur de la souris est placé au-dessus de l'élément de contrôle.

  • Model.HelpURL (String) : URL de l'aide en ligne pour l'élément de contrôle correspondant.

Pour regrouper plusieurs boutons radio, vous devez les positionner les uns à la suite des autres dans la séquence d'activation sans aucun espace (propriété Model.TabIndex décrite en tant que Order dans l'éditeur de boîte de dialogue). Si la séquence d'activation est interrompue par un autre élément de contrôle, StarOffice démarre automatiquement avec un nouveau groupe d'éléments de contrôle pouvant être activé indépendamment du premier.


Remarque –

Contrairement à VBA, vous ne pouvez pas insérer de boutons radio dans un groupe d'éléments de contrôle dans StarOffice Basic. Le groupement d'éléments de contrôle dans StarOffice Basic sert uniquement à créer une division visuelle en dessinant un cadre autour des éléments de contrôle.


Cases à cocher

Les cases à cocher servent à enregistrer une valeur Yes ou No et, suivant le mode, elles peuvent adopter deux ou trois états. En plus des états Yes et No, une case à cocher peut posséder un état intermédiaire si le statut correspondant pour Yes ou No a plusieurs significations ou n'est pas clair.

Les cases à cocher offrent les propriétés suivantes :

  • State (Short) : état de la case à cocher (0 : non, 1 : oui, 2 : état intermédiaire).

  • Label (String) : étiquette de l'élément de contrôle.

  • enableTriState (Boolean) : outre les états actif et inactif, vous pouvez également utiliser l'état intermédiaire.

L'objet Model d'une case à cocher fournit les propriétés suivantes :

  • Model.FontDescriptor (struct) : structure contenant les détails de la police utilisée (correspondant à la structure com.sun.star.awt.FontDescriptor).

  • Model.Label (String) : étiquette de l'élément de contrôle.

  • Model.Printable (Boolean) : l'élément de contrôle peut être imprimé.

  • Model.State (Short) : état de la case à cocher (0 : non, 1 : oui, 2 : état intermédiaire).

  • Model.Tabstop (Boolean) : permet d'atteindre l'élément de contrôle à l'aide de la touche de tabulation.

  • Model.TextColor (Long) : couleur du texte de l'élément de contrôle.

  • Model.HelpText (String) : texte d'aide s'affichant lorsque vous placez le curseur de la souris au-dessus de l'élément de contrôle.

  • Model.HelpURL (String) : URL de l'aide en ligne pour l'élément de contrôle correspondant.

Champs de texte

Les champs de texte permettent aux utilisateurs de saisir des chiffres et du texte. Le service com.sun.star.awt.UnoControlEdit constitue la base des champs de texte.

Un champ de texte peut contenir une ou plusieurs lignes et peut être édité ou bloqué par les utilisateurs. Les champs de texte peuvent également servir de champs numériques ou monétaires spéciaux, ainsi que de champs d'écran pour certaines tâches particulières. Ces éléments de contrôle étant basés sur le service Uno UnoControlEdit, leur gestion contrôlée par programme est semblable.

Les champs de texte offrent les propriétés suivantes :

  • Text (String) : texte actuel.

  • SelectedText (String) : texte actuellement mis en évidence.

  • Selection (Struct) : mise en évidence en lecture seule des détails (structure correspondant à com.sun.star.awt.Selection, avec les propriétés Min et Max spécifiant le début et la fin de la mise en évidence).

  • MaxTextLen (short) : nombre maximal de caractères autorisés dans le champ.

  • Editable (Boolean) : True active l'option de saisie de texte et False bloque cette option de saisie (la propriété ne peut pas être appelée directement : vous devez utiliser IsEditable).

  • IsEditable (Boolean) : le contenu de l'élément de contrôle peut être modifié, en lecture seule.

De plus, les propriétés suivantes sont fournies par l'intermédiaire de l'objet Model associé :

  • Model.Align (short) : orientation du texte (0 : aligné à gauche, 1 : centré, 2 : aligné à droite).

  • Model.BackgroundColor (long) : couleur d'arrière-plan de l'élément de contrôle.

  • Model.Border (short) : type de bordure (0 : pas de bordure, 1 : bordure 3D, 2 : bordure simple).

  • Model.EchoChar (String) : caractère écho pour le champ de mot de passe.

  • Model.FontDescriptor (struct) : structure contenant les détails de la police utilisée (correspondant à la structure com.sun.star.awt.FontDescriptor).

  • Model.HardLineBreaks (Boolean) : des retours à la ligne automatiques sont constamment insérés dans le texte de l'élément de contrôle.

  • Model.HScroll (Boolean) : le texte possède une barre de défilement horizontale.

  • Model.MaxTextLen (Short) : longueur maximale du texte. Si la valeur 0 est indiquée, il n'existe aucune limite.

  • Model.MultiLine (Boolean) : l'entrée peut s'étendre sur plusieurs lignes.

  • Model.Printable (Boolean) : l'élément de contrôle peut être imprimé.

  • Model.ReadOnly (Boolean) : le contenu de l'élément de contrôle est en lecture seule.

  • Model.Tabstop (Boolean) : permet d'atteindre l'élément de contrôle à l'aide de la touche de tabulation.

  • Model.Text (String) : texte associé à l'élément de contrôle.

  • Model.TextColor (Long) : couleur du texte de l'élément de contrôle.

  • Model.VScroll (Boolean) : le texte possède une barre de défilement verticale.

  • Model.HelpText (String) : texte d'aide s'affichant lorsque le curseur de la souris est placé au-dessus de l'élément de contrôle.

  • Model.HelpURL (String) : URL de l'aide en ligne pour l'élément de contrôle correspondant.

Zones de liste

Les zones de listes (service com.sun.star.awt.UnoControlListBox) prennent en charge les propriétés suivantes :

  • ItemCount (Short) : nombre d'éléments, en lecture seule.

  • SelectedItem (String) : texte de l'entrée mise en évidence, en lecture seule.

  • SelectedItems (Array Of Strings) : champ de données contenant les entrées mises en évidence, en lecture seule.

  • SelectItemPos (Short) : numéro de l'entrée actuellement mise en évidence, en lecture seule.

  • SelectItemsPos (Array of Short) : champ de données contenant le nombre d'entrées mises en évidence (pour les listes acceptant les sélections multiples), en lecture seule.

  • MultipleMode (Boolean) : True active l'option de sélection multiple des entrées et False bloque les sélections multiples (la propriété ne peut pas être appelée directement : vous devez utiliser IsMultipleMode).

  • IsMultipleMode (Boolean) : permet la sélection multiple dans les listes, en lecture seule.

Les zones de liste offrent les méthodes suivantes :

  • addItem (Item, Pos) : insère la chaîne spécifiée dans Item dans la liste, à la position Pos.

  • addItem (ItemArray, Pos) : insère les entrées spécifiées dans ItemArray dans le champ de données, à la position Pos.

  • removeItems (Pos, Count) : supprime les entrées Count à partir de la position Pos.

  • selectItem (Item, SelectMode) : active ou désactive la mise en évidence de l'élément spécifié dans la chaîne Item en fonction de la variable booléenne SelectMode.

  • makeVisible (Pos) : fait défiler les champs de la liste afin de rendre l'entrée spécifiée par Pos visible.

L'objet Model des zones de liste fournit les propriétés suivantes :

  • Model.BackgroundColor (Long) : couleur d'arrière-plan de l'élément de contrôle.

  • Model.Border (short) : type de bordure (0 : pas de bordure, 1 : bordure 3D, 2 : bordure simple).

  • Model.FontDescriptor (struct) : structure contenant les détails de la police utilisée (correspondant à la structure com.sun.star.awt.FontDescriptor).

  • Model.LineCount (Short) : nombre de lignes dans l'élément de contrôle.

  • Model.MultiSelection (Boolean) : permet la sélection multiple d'entrées.

  • Model.SelectedItems (Array of Strings) : liste des entrées mises en évidence.

  • Model.StringItemList (Array of Strings) : liste de toutes les entrées.

  • Model.Printable (Boolean) : l'élément de contrôle peut être imprimé.

  • Model.ReadOnly (Boolean) : le contenu de l'élément de contrôle est en lecture seule.

  • Model.Tabstop (Boolean) : permet d'atteindre l'élément de contrôle à l'aide de la touche de tabulation.

  • Model.TextColor (Long) : couleur du texte de l'élément de contrôle.

  • Model.HelpText (String) : texte d'aide s'affichant automatiquement lorsque le curseur de la souris se trouve au-dessus de l'élément de contrôle.

  • Model.HelpURL (String) : URL de l'aide en ligne pour l'élément de contrôle correspondant.


Remarque –

L'option VBA permettant d'émettre des entrées de liste avec une valeur numérique supplémentaire (ItemData) n'existe pas dans StarOffice Basic. Si vous souhaitez gérer une valeur numérique (ID de base de données, par exemple) en plus du texte en langage naturel, vous devez créer un champ de données auxiliaire en plus de la zone de liste.