Other Instructions
Type...End Type
Une structure est une collection de variables qui peuvent être manipulées comme une seule entité. En d'autres termes, on peut faire l'analogie entre une structure et une enregistrement, ou un morceau d'enregistrement.
L'API utilise souvent des structures prédefinies mais ce sont des structures UNO, un type de structure très specialisé
Définition
Avec l'instruction Type...End Type, vous pouvez définir votre propre structure (non-UNO)
Type aMenuItem 'déclare le nom de la structure 'Défini les champs dans la structure. 'chaque définition ressemble à une instruction DIM, sabs la commande "Dim" aCommand as String aText as String End Type 'ferme la définition
Instance
La définition Type n'est qu'un modèle, pas l'ensemble de variables existantes. Pour avoir une instance de ce type, véritables variables qui peuvent etre manipulées, utiliser l'instruction Dim ... as New :
Dim maItem as New aMenuItem
Portée
La définition de Type doit être écrite au début du module (avant lea première instruction Sub ou Function)
Pour le version 3.0 de OpenOffice.org, contrairement aux variables, il est impossible de rendre le type déclaré disponible à un autre module.
Une instance du nouveau type est une variable et répond donc aux règles de portées des variables (voir Scope and Life Span of Variables).
Un exemple de définition et d'utilisation d'un champ dans une instance est donné dans la section With...End With.
With...End With
Qualificateurs
En général, Basic ne regarde pas à l'intérieur d'un conteneur, comme les Object, pour déterminer quels noms y sont définis. Si vous voulez utiliser un tel nom, il vous faut indiquer à Basic où regarder. Ceci est fait en utilisant le nom de l'objet en tant que qualificateur. Il s'utilise en amont du nom interne, séparé par un point
MonObjet.UnNom
Comme les conteneurs peuvent contenir d'autres conteneurs, vous pourrez avoir besoin de plus d'un qualifcateur. Il vous suffit alors de les empiler:
MonObjet.ObjetFils.ObjetPetitFils.UnNom
Cette representation peut être décrite comme "concatenée avec des opérateurs points ('.')".
L'alternative With
L'instruction With...End With est une alternative pour ne pas écrire tous les qualificateurs à chaque fois (et certains qualifcateurs de l'API peuvent être assez longs). Vous spécifiez les qualificateurs dans l'instruction With. Jusqu'à ce que Basic rencontre l'instruction End With, il recherche les noms partiellement qualifiés qui commencent avec un point. Le compilateur utilise alors le qualificateur déclaré dans le With pour qualifier ces noms comme si le qualificateurs était ecris à chaque fois
Exemple 1: Une structure utilisateur
Cet exemple montre comment déclarer et utiliser une structure ainsi que comment accéder à ses éléments internes, avec et sans l'instruction With
Type aMenuItem aCommand as String aText as String End Type Sub Main 'Crée une instance de la structure 'Noter le mot-clé, "New" Dim maItem as New aMenuItem With maItem .aCommand = ".uno:Copy" .aText = "~Copy" End With MsgBox "Command: " & maItem.aCommand & Chr(13) _ & "Text: " & maItem.aText End Sub
Exemple 2: Instruction Case
In Cells and Ranges, the following example has the qualifiers in the Case statements written out completely, for clarity. You can write it more easily, this way: Dans Cells and Ranges, le qualificateur est completement écrit dans ltinstruction Case. Cet exemple peut etre écrit de manière plus concise :
Dim Doc As Object Dim Sheet As Object Dim Cell As Object Doc = StarDesktop.CurrentComponent Sheet = Doc.Sheets(0) Cell = Sheet.getCellByPosition(1,1) 'Cell "B2" (0-based!) Cell.Value = 1000 With com.sun.star.table.CellContentType Select Case Cell.Type Case .EMPTY MsgBox "Content: Empty" Case .VALUE MsgBox "Content: Value" Case .TEXT MsgBox "Content: Text" Case .FORMULA MsgBox "Content: Formula" End Select End With
Noter que l'instruction With doit encadrer entièrement l'instruction Select
Content on this page is licensed under the Public Documentation License (PDL). |