Difference between revisions of "FR/Documentation/BASIC Guide/Other Instructions"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (corrections des fautes, modification de certaines tournures.)
Line 10: Line 10:
 
== <tt>Type...End Type</tt> ==
 
== <tt>Type...End Type</tt> ==
  
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.
+
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 prédefinies mais ce sont des ''structures UNO'', un type de structure très specialisé
 
L'[[Documentation/BASIC Guide/API Intro|API]] utilise souvent des structures prédefinies mais ce sont des ''structures UNO'', un type de structure très specialisé
Line 22: Line 22:
 
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.
 
     'Défini les champs dans la structure.
     'chaque définition ressemble à une instruction DIM, sabs la commande "Dim"
+
     'chaque définition ressemble à une instruction DIM, sans la commande "Dim"
 
     aCommand as String
 
     aCommand as String
 
     aText as String
 
     aText as String
End Type 'ferme la définition
+
End Type 'conclut la définition
 
</source>
 
</source>
  
 
=== Instance ===
 
=== Instance ===
  
La définition <tt>Type</tt> 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 <tt>Dim ... as New</tt> :
+
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, véritables variables qui peuvent etre manipulées, utiliser l'instruction <tt>Dim ... as New</tt> :
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 38: Line 38:
 
=== Portée ===
 
=== Portée ===
  
La définition de <tt>Type</tt> doit être écrite au début du module (avant lea première instruction <tt>Sub</tt> ou <tt>Function</tt>)
+
  the Type definition may be written at the start of a module (before the first Sub or Function). The definition will then be available to all routines in the module.
  
Pour le version 3.0 de {{PRODUCTNAME}}, contrairement aux variables, il est impossible de rendre le type déclaré disponible à un autre 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, il est impossible d'accéder au type déclaré à 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]]).
  
Un exemple de définition et d'utilisation d'un champ dans une instance est donné dans la section <tt>With...End With</tt>.
+
Un exemple de d'usage d'une définition et de référencement d'un champ dans une instance est donné dans la section <tt>With...End With</tt>.
  
 
== <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 les <tt>Object</tt>, 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
+
En général, Basic ne regarde pas à l'intérieur d'un conteneur, comme les <tt>Object</tt>, 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
 
  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:
+
Comme les conteneurs peuvent contenir d'autres conteneurs, vous pourrez avoir besoin de plus d'un ''qualificateur''. Il vous suffit alors de les empiler dans l'ordre du plus externe au plus interne :
  
 
  MonObjet.ObjetFils.ObjetPetitFils.UnNom
 
  MonObjet.ObjetFils.ObjetPetitFils.UnNom
  
Cette representation peut être décrite comme "concatenée avec des opérateurs points ('.')".
+
Cette representation peut être décrite comme "concatenée avec l'opérateur point ('.')".
  
 
=== 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 (et certains qualifcateurs de l'API peuvent être assez longs). Vous spécifiez les qualificateurs dans l'instruction <tt>With</tt>. Jusqu'à ce que Basic rencontre l'instruction <tt>End With</tt>, il recherche les noms partiellement qualifiés qui commencent avec un point. Le compilateur utilise alors le qualificateur déclaré dans le <tt>With</tt> pour qualifier ces noms comme si le qualificateurs était ecris à 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 les qualificateurs dans l'instruction <tt>With</tt>. Jusqu'à ce que Basic rencontre l'instruction <tt>End With</tt>, il recherche les noms partiellement qualifiés qui commencent avec un point. Le compilateur utilise alors le qualificateur déclaré dans le <tt>With</tt> pour qualifier ces noms comme si le qualificateurs était écrit à chaque fois
  
 
=== Exemple 1: Une structure utilisateur ===
 
=== Exemple 1: Une structure utilisateur ===
Line 88: Line 90:
 
=== Exemple 2: Instruction Case ===
 
=== Exemple 2: Instruction Case ===
  
Dans [[Documentation/BASIC_Guide/Cells and Ranges|Cells and Ranges]], le qualificateur est completement écrit dans ltinstruction <tt>Case</tt>. Cet exemple peut etre écrit de manière plus concise :
+
Dans [[Documentation/BASIC_Guide/Cells and Ranges|Cells and Ranges]], le qualificateur est completement écrit dans l'instruction <tt>Case</tt>. Cet exemple peut être écrit de manière plus concise :
  
 
<source lang="oobas">
 
<source lang="oobas">

Revision as of 11:49, 20 September 2009

doc OOo
Book.png

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é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, 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, véritables variables qui peuvent etre manipulées, utiliser l'instruction Dim ... as New :

Dim maItem as New aMenuItem

Portée

 the Type definition may be written at the start of a module (before the first Sub or Function). The definition will then be available to all routines in the module.

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, contrairement aux variables, il est impossible d'accéder au type déclaré à 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).

Un exemple de d'usage d'une définition et de référencement 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 qualificateur. Il vous suffit alors de les empiler 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 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 é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 completement é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).
Personal tools