Difference between revisions of "FR/Documentation/BASIC Guide/Events"
(New page: {{FR/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=Documentation/BASIC Guide/Properties |NextPage=Documentation/BASIC Guide/Control Elements |dial=block ...) |
|||
Line 2: | Line 2: | ||
|ShowPrevNext=block | |ShowPrevNext=block | ||
|ShowPrevPage=block | |ShowPrevPage=block | ||
− | |PrevPage=Documentation/BASIC Guide/Properties | + | |PrevPage=FR/Documentation/BASIC Guide/Properties |
− | |NextPage=Documentation/BASIC Guide/Control Elements | + | |NextPage=FR/Documentation/BASIC Guide/Control Elements |
|dial=block | |dial=block | ||
}} | }} | ||
+ | |||
{{DISPLAYTITLE:Événements}} | {{DISPLAYTITLE:Événements}} | ||
− | + | Les boîtes de dialogue et formulaires de {{OOo}} 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énement exécute une procédure prédéfinie lorsqu'une action spécifique se produit. 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 {{OOo}} 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 : | |
− | * '''Contrôle de la souris''' | + | * '''Contrôle de la souris''' : événements correspondant à des actions effectuées à l'aide de la souris (des mouvements simples ou un clic à un emplacement particulier de l'écran, par exemple). |
− | * '''Contrôle du clavier''' | + | * '''Contrôle du clavier''' : événements déclenchés par des séquences de touches. |
− | * '''Modification du focus''' | + | * '''Modification du focus''' : événements exécutés par {{OOo}} lorsque des éléments de contrôle sont activés ou désactivés. |
− | * '''Événements propres à l'élément de contrôle''' | + | * '''Événements propres à l'élément de contrôle''' : événements liés à certains éléments de contrôle. |
Lorsque vous utilisez des événements, assurez-vous de créer la boîte de dialogue associée dans l'environnement de développement {{OOo}} et qu'elle contient les éléments de contrôle ou documents nécessaires (si les événements s'appliquent à un formulaire). | Lorsque vous utilisez des événements, assurez-vous de créer la boîte de dialogue associée dans l'environnement de développement {{OOo}} et qu'elle contient les éléments de contrôle ou documents nécessaires (si les événements s'appliquent à un formulaire). | ||
− | [[Image: | + | [[Image:FR-Documentation basicguide dlg 03-trans.gif|none|thumb|500px|Environnement de développement OpenOffice.org Basic]] |
La figure ci-dessus présente l'environnement de développement {{OOo}} Basic avec une fenêtre de 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. | La figure ci-dessus présente l'environnement de développement {{OOo}} Basic avec une fenêtre de 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. | ||
Line 49: | Line 50: | ||
Si cette procédure a été créée dans {{OOo}} Basic, vous pouvez l'assigner à un événement requis à l'aide de la fenêtre des propriétés de l'éditeur de boîte de dialogue. | Si cette procédure a été créée dans {{OOo}} Basic, vous pouvez l'assigner à un événement requis à l'aide de la fenêtre des propriétés de l'éditeur de boîte de dialogue. | ||
− | [[Image: | + | [[Image:FR-Documentation basicguide dlg 02-trans.gif|none|thumb|400px|Boîte dialogue Assignation de macro]] |
La boîte de dialogue d'assignation répertorie toutes les procédures de {{OOo}} Basic. Pour assigner une procédure à un événement, sélectionnez la procédure et cliquez sur '''Assigner'''. | La boîte de dialogue d'assignation répertorie toutes les procédures de {{OOo}} Basic. Pour assigner une procédure à un événement, sélectionnez la procédure et cliquez sur '''Assigner'''. | ||
Line 57: | Line 58: | ||
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. | 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 {{OOo}} Basic, vous pouvez utiliser des paramètres d'objet pour fournir à une procédure des informations supplémentaires concernant un événement, par | + | Dans {{OOo}} Basic, vous pouvez utiliser des paramètres d'objet pour fournir à une procédure des informations supplémentaires concernant un événement, par exemple : |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 73: | Line 74: | ||
== Événements de la souris == | == Événements de la souris == | ||
− | {{OOo}} Basic reconnaît les événements de souris | + | {{OOo}} Basic reconnaît les événements de souris suivants : |
;<tt>Mouse moved</tt>:l'utilisateur déplace la souris. | ;<tt>Mouse moved</tt>:l'utilisateur déplace la souris. | ||
Line 81: | Line 82: | ||
;<tt>Mouse outside</tt>:l'utilisateur déplace la souris en dehors de la fenêtre active. | ;<tt>Mouse outside</tt>: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 <idl>com.sun.star.awt.MouseEvent</idl> qui fournit les informations | + | La structure des objets Event associés est définie dans la structure <idl>com.sun.star.awt.MouseEvent</idl> qui fournit les informations suivantes : |
;<tt>Buttons (short)</tt>:le bouton est enfoncé (une ou plusieurs constantes correspondant à <idl>com.sun.star.awt.MouseButton</idl>). | ;<tt>Buttons (short)</tt>:le bouton est enfoncé (une ou plusieurs constantes correspondant à <idl>com.sun.star.awt.MouseButton</idl>). | ||
Line 88: | Line 89: | ||
;<tt>ClickCount (long)</tt>:nombre de clics associés à l'événement de la souris (si {{OOo}} peut répondre assez vite, <tt>ClickCount</tt> est également égal à 1 pour un double-clic, car un seul événement est déclenché). | ;<tt>ClickCount (long)</tt>:nombre de clics associés à l'événement de la souris (si {{OOo}} peut répondre assez vite, <tt>ClickCount</tt> est également égal à 1 pour un double-clic, car un seul événement est déclenché). | ||
− | Les constantes définies dans <idl>com.sun.star.awt.MouseButton</idl> pour les boutons de la souris sont les | + | Les constantes définies dans <idl>com.sun.star.awt.MouseButton</idl> pour les boutons de la souris sont les suivantes : |
;<tt>LEFT</tt>:bouton gauche de la souris. | ;<tt>LEFT</tt>:bouton gauche de la souris. | ||
Line 94: | Line 95: | ||
;<tt>MIDDLE</tt>:bouton du milieu de la souris. | ;<tt>MIDDLE</tt>: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é | + | 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é : |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 125: | Line 126: | ||
== Événements du clavier == | == Événements du clavier == | ||
− | Les événements de clavier suivants sont disponibles dans {{OOo}} | + | Les événements de clavier suivants sont disponibles dans {{OOo}} Basic : |
;<tt>Key pressed</tt>:l'utilisateur appuie sur une touche. | ;<tt>Key pressed</tt>:l'utilisateur appuie sur une touche. | ||
Line 134: | Line 135: | ||
Une action unique sur une touche de modification, comme la touche MAJ ou ALT, ne crée pas d'événement indépendant. | 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 fourni par {{OOo}} Basic à la procédure pour la gestion des événements. Il contient les propriétés | + | Les informations relatives à une touche enfoncée sont indiquées par l'objet Event fourni par {{OOo}} Basic à la procédure pour la gestion des événements. Il contient les propriétés suivantes : |
;<tt>KeyCode (short)</tt>:code de la touche enfoncée (les valeurs par défaut correspondent à <idl>com.sun.star.awt.Key</idl>). | ;<tt>KeyCode (short)</tt>:code de la touche enfoncée (les valeurs par défaut correspondent à <idl>com.sun.star.awt.Key</idl>). | ||
;<tt>KeyChar (String)</tt>:caractère saisi (en tenant compte des touches de modification). | ;<tt>KeyChar (String)</tt>:caractère saisi (en tenant compte des touches de modification). | ||
− | L'exemple suivant détermine à l'aide de la propriété <tt>KeyCode</tt> si l'utilisateur a appuyé sur la touche Entrée, sur la touche de tabulation ou sur l'une des autres touches de contrôle. Si l'utilisateur appuie sur l'une de ces touches, l'exemple retourne le nom de la | + | L'exemple suivant détermine à l'aide de la propriété <tt>KeyCode</tt> si l'utilisateur a appuyé sur la touche Entrée, sur la touche de tabulation ou sur l'une des autres touches de contrôle. Si l'utilisateur appuie sur l'une de ces touches, l'exemple retourne le nom de la touche ; dans le cas contraire, il retourne le caractère tapé : |
<source lang="oobas"> | <source lang="oobas"> | ||
Line 175: | Line 176: | ||
== Événements du focus == | == É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 | + | 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 : |
;<tt>When receiving focus</tt>:l'élément reçoit le focus. | ;<tt>When receiving focus</tt>:l'élément reçoit le focus. | ||
;<tt>When losing focus</tt>:l'élément perd le focus. | ;<tt>When losing focus</tt>:l'élément perd le focus. | ||
− | Les objets <tt>Event</tt> des événements de focus sont structurés de la façon | + | Les objets <tt>Event</tt> des événements de focus sont structurés de la façon suivante : |
;<tt>FocusFlags (short)</tt>:raison du changement de focus (la valeur par défaut correspond à <idl>com.sun.star.awt.FocusChangeReason</idl>). | ;<tt>FocusFlags (short)</tt>:raison du changement de focus (la valeur par défaut correspond à <idl>com.sun.star.awt.FocusChangeReason</idl>). | ||
Line 188: | Line 189: | ||
== Événements propres à l'élément de contrôle == | == Événements propres à l'élément de contrôle == | ||
− | Outre les événements ci-dessus, pris en charge par tous les éléments de contrôle, il existe également des événements spécifiques, définis uniquement pour certains éléments de contrôle. Les plus importants sont les | + | Outre les événements ci-dessus, pris en charge par tous les éléments de contrôle, il existe également des événements spécifiques, définis uniquement pour certains éléments de contrôle. Les plus importants sont les suivants : |
;<tt>When Item Changed</tt>:la valeur d'un élément de contrôle change. | ;<tt>When Item Changed</tt>:la valeur d'un élément de contrôle change. | ||
Line 197: | Line 198: | ||
Lorsque vous utilisez des événements, notez que certains d'entre eux, comme <tt>When initiating</tt>, peuvent être déclenchés chaque fois que vous cliquez sur certains éléments de contrôle (par exemple, sur des boutons radio). Aucune action n'est exécutée pour déterminer 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. | Lorsque vous utilisez des événements, notez que certains d'entre eux, comme <tt>When initiating</tt>, peuvent être déclenchés chaque fois que vous cliquez sur certains éléments de contrôle (par exemple, sur des boutons radio). Aucune action n'est exécutée pour déterminer 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 <tt>Item Status Changed</tt> sont les | + | Les propriétés de l'événement <tt>Item Status Changed</tt> sont les suivantes : |
;<tt>Selected (long)</tt>:entrée actuellement sélectionnée. | ;<tt>Selected (long)</tt>:entrée actuellement sélectionnée. |
Revision as of 20:50, 19 December 2008
Les boîtes de dialogue et formulaires de Apache OpenOffice 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énement exécute une procédure prédéfinie lorsqu'une action spécifique se produit. 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 Apache OpenOffice 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 :
- Contrôle de la souris : événements correspondant à des actions effectuées à l'aide de la souris (des mouvements simples ou un clic à un emplacement particulier de l'écran, par exemple).
- Contrôle du clavier : événements déclenchés par des séquences de touches.
- Modification du focus : événements exécutés par Apache OpenOffice lorsque des éléments de contrôle sont activés ou désactivés.
- Événements propres à l'élément de contrôle : événements liés à certains éléments de contrôle.
Lorsque vous utilisez des événements, assurez-vous de créer la boîte de dialogue associée dans l'environnement de développement Apache OpenOffice et qu'elle contient les éléments de contrôle ou documents nécessaires (si les événements s'appliquent à un formulaire).
La figure ci-dessus présente l'environnement de développement Apache OpenOffice Basic avec une fenêtre de 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 Apache OpenOffice Basic associées afin qu'elles puissent être appelées par les gestionnaires d'événements. Vous pouvez utiliser ces procédures dans tous les modules, mais il est préférable d'en limiter l'utilisation à deux modules. Pour simplifier la lecture du 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 du code, 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 Apache OpenOffice Basic, vous pouvez l'assigner à un événement requis à l'aide de la fenêtre des propriétés de l'éditeur de boîte de dialogue.
La boîte de dialogue d'assignation répertorie toutes les procédures de Apache OpenOffice 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 Apache OpenOffice 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 structure et les propriétés de l'objet Event dépendent du type d'événement qui déclenche l'appel de procédure.
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. Il est possible d'atteindre l'élément de contrôle à l'aide de Event.Source et son modèle à l'aide de 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
Apache OpenOffice 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 released
- 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 Apache OpenOffice peut répondre assez vite, ClickCount est é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 les suivantes :
- 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
Événements du clavier
Les événements de clavier suivants sont disponibles dans Apache OpenOffice 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), Apache OpenOffice 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 fourni par Apache OpenOffice Basic à 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 détermine à l'aide de la propriété KeyCode si l'utilisateur a appuyé sur la touche Entrée, sur la touche de tabulation ou sur l'une des autres touches de contrôle. Si l'utilisateur appuie sur l'une de ces touches, l'exemple retourne le nom de la touche ; dans le cas contraire, il retourne le caractère tapé :
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, pris en charge par tous les éléments de contrôle, il existe également des événements spécifiques, définis uniquement pour certains éléments de contrôle. Les plus importants sont les suivants :
- 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 sur certains éléments de contrôle (par exemple, sur des boutons radio). Aucune action n'est exécutée pour déterminer 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 les suivantes :
- Selected (long)
- entrée actuellement sélectionnée.
- Highlighted (long)
- entrée actuellement mise en évidence.
- ItemId (long)
- ID de l'entrée.
Content on this page is licensed under the Public Documentation License (PDL). |