FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ
Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017 Ajouter une question
Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).
Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.
- Comment lire et écrire dans une zone de texte ?
- Comment changer la mise en forme d'une zone de texte ?
- Comment sélectionner la totalité du contenu de la zone de texte ?
- Comment remplacer la chaîne de caractères sélectionnée dans la zone de texte ?
- Comment identifier la saisie du clavier dans le TextField et n'autoriser que les données numériques ?
- Comment identifier quelle zone de texte a pris le focus ?
Code vb : | Sélectionner tout |
1 2 3 4 5 | 'Insère la date du jour dans la zone de texte. odialog1.getControl("TextField1").Text = Date 'Lit le contenu de la zone de texte MsgBox oDialog1.getControl("TextField1").getText |
Cet exemple modifie la couleur du texte et la couleur de fond.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 | Dim Obj As Object 'Définit la zone de texte Obj = oDialog1.GetControl("TextField1") 'Modifie la couleur du texte (Blanc) Obj.Model.TextColor = RGB(255 , 255, 255) 'Modifie la couleur de fond (Noir) Obj.Model.BackgroundColor = RGB(0, 0, 0) |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Dim oSelection As New com.sun.star.awt.Selection 'Remplit la zone de texte pour le test oDialog1.getControl("TextField2").Text = "Ma chaîne" 'Définit le début de la sélection oSelection.Min = 0 'Définit la fin de la sélection (L'exemple prend en compte tous les caractères 'de la zone de texte). oSelection.Max = Len(oDialog1.getControl("TextField2").Text) 'Applique le focus sur la zone de texte. oDialog1.getControl("TextField2").setFocus 'Sélectionne la zone définie oDialog1.getControl("TextField2").Selection = oSelection |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | Sub RemplacementSelection Dim Avant As String , Apres As String Dim Cible As String, LaChaine As String Dim NouvelleChaine As String 'Indique la chaîne qui va remplacer la sélection NouvelleChaine = "La description" 'Vérifie si la zone de texte est vide. If odialog1.getControl("TextField1").Text = "" Then Exit Sub 'Vérifier s'il y a une sélection dans la zone de texte If odialog1.getControl("TextField1").SelectedText = "" Then Exit Sub 'Récupère la chaine sélectionnée dans la zone de texte Cible = odialog1.getControl("TextField1").SelectedText 'Récupère le contenu complet de la zone de texte laChaine = odialog1.getControl("TextField1").Text 'Récupère la position de la donnée à remplacer dans la zone de texte Position = Instr ( laChaine , Cible ) If laChaine = Cible Then odialog1.getControl("TextField1").Text = NouvelleChaine Exit Sub End If 'Récupère la position de la chaine avant la sélection Avant = Left ( laChaine , Position - 1 ) 'Récupère la position de la chaine après la sélection Apres = Right ( laChaine , Len ( laChaine) -Len( Cible) - Position + 1 ) 'Modifie la zone de texte odialog1.getControl("TextField1").Text = Avant & NouvelleChaine & Apres End Sub |
Ajoutez la procédure ci-dessous dans un module du fichier Open Office.
Créez une zone de texte nommée TextField1 dans la boîte de dialogue.
Clic droit sur l'objet
Propriétés
Onglet Evènements
Pour attribuer la macro « UtilisationClavier » à l'évènement « Touche "enfoncée »:
Cliquez sur le bouton « Assigner » dans la fenêtre « Assignation de macro ».
Recherchez le module contenant la macro dans l'arborescence de gauche (liste des bibliothèques, et les modules des fichiers OOo ouverts.)
Ensuite, sélectionnez la macro « UtilisationClavier » dans la liste de droite.
Cliquez sur OK pour valider.
Cliquez sur OK dans la fenêtre « Assignation de macro ».
Fermez la fenêtre « Propriétés TextField ».
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 'Source adaptée: Basic Programmer's Guide Dialogs Sub UtilisationClavier(Event As Object) Dim Cible As String Dim Msg As String Dim oSelection As New com.sun.star.awt.Selection Select Case Event.KeyCode Case com.sun.star.awt.Key.RETURN Msg = "Touche Entrée" Case com.sun.star.awt.Key.TAB Msg = "Touche tabultation" Case com.sun.star.awt.Key.DELETE Msg = "Touche suppression" Case com.sun.star.awt.Key.ESCAPE Msg = "Touche Echap" Case com.sun.star.awt.Key.DOWN Msg = "Touche Flèche bas" Case com.sun.star.awt.Key.UP Msg = "Touche Flèche haut" Case com.sun.star.awt.Key.LEFT Msg = "Touche Flèche gauche" Case com.sun.star.awt.Key.RIGHT Msg = "Touche Flèche droite" Case Else Select Case Event.KeyChar 'Si les touches ne correspondent pas au clavier numérique: Case Is < 48, Is > 57 Msg = "Vous devez saisir uniquement des valeurs numériques." '--- Supprime le contenu le caractère erroné Cible = odialog1.getControl("TextField1").getText odialog1.getControl("TextField1").Text = Left( Cible , Len(Cible) - 1 ) '--- Repositionne le curseur en fin de zone oSelection.Min = Len(odialog1.getControl("TextField1").Text) oSelection.Max = Len(oDialog1.getControl("TextField1").Text) oDialog1.getControl("TextField1").Selection = oSelection End Select End Select If Msg <> "" Then MsgBox Msg End Sub |
Vous pouvez utiliser le Listener (gestionnaire d'évènement) XFocusListener pour identifier la prise ou la perte de focus sur un contrôle.
L'exemple ci-dessous applique le gestionnaire d'évènement sur les zones de texte contenues dans la boîte de dialogue Dialog1. Chaque objet type "TextField" (UnoEditControl) change ensuite de couleur lorsqu'il prend le focus.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | Global oDialog1 As Object Private oFocusListener As Object Sub AfficherBoiteDialogue Dim Tableau() Dim i As Integer DialogLibraries.LoadLibrary( "Standard" ) oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 ) 'Définit le Listener (gestionnaire d'évènements) oFocusListener = createUnoListener("TextBox_", "com.sun.star.awt.XFocusListener") Tableau = oDialog1.Controls 'Boucle sur les contrôles de la boîte de dialogue BASIC. For i = 0 To UBound(Tableau) 'Identie les TextBox et associe le Listener If Tableau(i).ImplementationName = "stardiv.Toolkit.UnoEditControl" Then _ Tableau(i).addFocusListener( oFocusListener ) Next i 'Affiche la boîte de dialogue BASIC. oDialog1.Execute() End Sub 'Evènement perte du focus Sub TextBox_focusLost( oEvent As Object ) Dim Cible As Object 'Identifie le contrôle Cible = oEvent.Source.Model 'Modifie la couleur de fond du contrôle Cible.Backgroundcolor = RGB(255, 255, 255) End Sub 'Evènement prise du focus Sub TextBox_focusGained( oEvent As Object) Dim Cible As Object 'Identifie le contrôle Cible = oEvent.Source.Model 'Modifie la couleur de fond du contrôle Cible.Backgroundcolor = RGB(150, 150, 200) End Sub |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.