Difference between revisions of "FR/Documentation/BASIC Guide/Other Instructions"
Brandelune (Talk | contribs) (corrections des fautes, modification de certaines tournures.) |
Brandelune (Talk | contribs) m (corrections des fautes, modification de certaines tournures.) |
||
Line 12: | Line 12: | ||
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 un enregistrement, ou un morceau d'enregistrement. | 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 un enregistrement, ou un morceau d'enregistrement. | ||
− | L'[[Documentation/BASIC Guide/API Intro|API]] utilise souvent des structures | + | L'[[Documentation/BASIC Guide/API Intro|API]] utilise souvent des structures prédéfinies mais ce sont des ''structures UNO'', un type de structure très spécialisé. |
Line 21: | Line 21: | ||
<source lang="oobas"> | <source lang="oobas"> | ||
Type aMenuItem 'déclare le nom de la structure | Type aMenuItem 'déclare le nom de la structure | ||
− | ' | + | 'défini les champs dans la structure |
'chaque définition ressemble à une instruction DIM, sans la commande "Dim" | 'chaque définition ressemble à une instruction DIM, sans la commande "Dim" | ||
aCommand as String | aCommand as String | ||
Line 30: | Line 30: | ||
=== Instance === | === Instance === | ||
− | La définition <tt>Type</tt> n'est qu'un modèle, pas un ensemble de variables existantes. Pour avoir une ''instance'' de ce type, avec de véritables variables qui peuvent | + | La définition <tt>Type</tt> n'est qu'un modèle, pas un ensemble de variables existantes. Pour avoir une ''instance'' de ce type, avec de véritables variables qui peuvent être manipulées, utiliser l'instruction <tt>Dim ... as New</tt> : |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 37: | Line 37: | ||
=== Portée === | === Portée === | ||
− | |||
− | |||
Comme dans l'exemple ci-dessous, la définition de <tt>Type</tt> peut être écrite au début du module (avant la première instruction <tt>Sub</tt> ou <tt>Function</tt>). La définition sera alors utilisable par toutes les routines dans le module. | Comme dans l'exemple ci-dessous, la définition de <tt>Type</tt> peut être écrite au début du module (avant la première instruction <tt>Sub</tt> ou <tt>Function</tt>). La définition sera alors utilisable par toutes les routines dans le module. | ||
− | Depuis la version 3.0 de {{PRODUCTNAME}}, contrairement aux variables, | + | Depuis la version 3.0 de {{PRODUCTNAME}}, et contrairement aux variables, un type déclaré dans un module ne peut pas être utilisé à partir d'un autre module. |
Une instance du nouveau type est une variable et répond donc aux règles de portées des variables (voir [[Documentation/BASIC Guide/Scope of Variables|Scope and Life Span of Variables]]). | Une instance du nouveau type est une variable et répond donc aux règles de portées des variables (voir [[Documentation/BASIC Guide/Scope of Variables|Scope and Life Span of Variables]]). | ||
Line 50: | Line 48: | ||
== <tt>With...End With</tt> == | == <tt>With...End With</tt> == | ||
=== Qualificateurs === | === Qualificateurs === | ||
− | En général, Basic ne regarde pas à l'intérieur d'un conteneur, comme un <tt>Object</tt> par exemple, pour déterminer quels noms y sont définis. Si vous voulez utiliser un tel nom, il | + | En général, Basic ne regarde pas à l'intérieur d'un conteneur, comme un <tt>Object</tt> par exemple, pour déterminer quels noms y sont définis. Si vous voulez utiliser un tel nom, il faut indiquer à Basic où le trouver. Vous pouvez faire ceci en utilisant le nom de l'objet en tant que ''qualificateur''. Le qualificateur s'utilise en amont du nom interne, séparé par un point : |
MonObjet.UnNom | MonObjet.UnNom | ||
Line 62: | Line 60: | ||
=== L'alternative <tt>With</tt> === | === L'alternative <tt>With</tt> === | ||
− | L'instruction <tt>With...End With</tt> est une alternative pour ne pas écrire tous les qualificateurs à chaque fois (certains qualificateurs de l'API peuvent être assez longs). Vous spécifiez alors les qualificateurs dans l'instruction <tt>With</tt>. Basic recherche alors les noms partiellement qualifiés qui commencent avec un point jusqu'à ce qu'il rencontre l'instruction <tt>End With</tt>. Le compilateur utilise alors le qualificateur déclaré dans l'instruction <tt>With</tt> pour qualifier ces noms comme si le qualificateur était écrit à chaque fois | + | L'instruction <tt>With...End With</tt> est une alternative pour ne pas écrire tous les qualificateurs à chaque fois (certains qualificateurs de l'API peuvent être assez longs). Vous spécifiez alors les qualificateurs dans l'instruction <tt>With</tt>. Basic recherche alors les noms partiellement qualifiés qui commencent avec un point jusqu'à ce qu'il rencontre l'instruction <tt>End With</tt>. Le compilateur utilise alors le qualificateur déclaré dans l'instruction <tt>With</tt> pour qualifier ces noms comme si le qualificateur était écrit à chaque fois. |
=== Exemple 1: Une structure utilisateur === | === Exemple 1: Une structure utilisateur === | ||
Line 116: | Line 114: | ||
End With | End With | ||
</source> | </source> | ||
− | Noter que l'instruction <tt>With</tt> doit encadrer entièrement l'instruction <tt>Select</tt> | + | Noter que l'instruction <tt>With</tt> doit encadrer entièrement l'instruction <tt>Select</tt>. |
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Other Instructions}} | {{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Other Instructions}} | ||
{{PDL1}} | {{PDL1}} |
Revision as of 12:14, 20 September 2009
- Présentation d'un programme Apache OpenOffice Basic
- Utilisation des variables
- Variables de chaîne de caractères
- Variables numériques
- Variables booléennes
- Variables de date et d'heure
- Matrices
- Portée et durée de vie des variables
- Constantes
- Opérateurs
- Instructions conditionnelles
- Boucles
- Procédures et fonctions
- Traitement des erreurs
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 un enregistrement, ou un morceau d'enregistrement.
L'API utilise souvent des structures prédéfinies mais ce sont des structures UNO, un type de structure très spécialisé.
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, sans la commande "Dim" aCommand as String aText as String End Type 'conclut la définition
Instance
La définition Type n'est qu'un modèle, pas un ensemble de variables existantes. Pour avoir une instance de ce type, avec de véritables variables qui peuvent être manipulées, utiliser l'instruction Dim ... as New :
Dim maItem as New aMenuItem
Portée
Comme dans l'exemple ci-dessous, la définition de Type peut être écrite au début du module (avant la première instruction Sub ou Function). La définition sera alors utilisable par toutes les routines dans le module.
Depuis la version 3.0 de OpenOffice.org, et contrairement aux variables, un type déclaré dans un module ne peut pas être utilisé à partir d'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).
La section With...End With montre un exemple d'usage d'une définition et de référencement d'un champ dans une instance.
With...End With
Qualificateurs
En général, Basic ne regarde pas à l'intérieur d'un conteneur, comme un Object par exemple, pour déterminer quels noms y sont définis. Si vous voulez utiliser un tel nom, il faut indiquer à Basic où le trouver. Vous pouvez faire ceci en utilisant le nom de l'objet en tant que qualificateur. Le qualificateur 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 qualificateur. Il vous suffit alors de les indiquer dans l'ordre du plus externe au plus interne :
MonObjet.ObjetFils.ObjetPetitFils.UnNom
Cette representation peut être décrite comme "concatenée avec l'opérateur point ('.')".
L'alternative With
L'instruction With...End With est une alternative pour ne pas écrire tous les qualificateurs à chaque fois (certains qualificateurs de l'API peuvent être assez longs). Vous spécifiez alors les qualificateurs dans l'instruction With. Basic recherche alors les noms partiellement qualifiés qui commencent avec un point jusqu'à ce qu'il rencontre l'instruction End With. Le compilateur utilise alors le qualificateur déclaré dans l'instruction With pour qualifier ces noms comme si le qualificateur était écrit à 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
Dans Cells and Ranges, le qualificateur est intégralement écrit dans l'instruction Case. Cet exemple peut être é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). |