[Résolu][Writer] Mettre en gras un champ de texte

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu][Writer] Mettre en gras un champ de texte

Messagepar Kilin » 10 Mai 2021 15:06

Bonjour,

J'essaie de faire une fonction qui transformerait un champs de texte en BOLD, mais ca ne fonctionne pas :-( J'obtiens l'erreur variable d'objet non définie.
Je précise que je ne suis pas programmeur et que j'essaie d'adapter des bouts de code trouvés par ci par la.

Voici le morceau de code, qui devrait fonctionner par l'appel de BOLDIFY ("exemple") si le champs de texte sur mon document s'appelle exemple.
Code : Tout sélectionner   AgrandirRéduire
Function BOLDIFY(NomChampMaitre as String)
Dim oEnum, oField

   oEnum = ThisComponent.getTextFields().createEnumeration()
   Do While oEnum.hasMoreElements()
      oField = oEnum.nextElement()
      If oField.TextFieldMaster.Name = NomChampMaitre Then
         BOLDIFY = oField.TextFieldMaster.Content
      End If
   Loop

   BOLDIFY.charWeight = com.sun.star.awt.FontWeight.BOLD

End Function


Merci pour votre aide !
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Kilin
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 22 Mars 2018 00:14

Re: [Writer] Mettre en gras en un champs de texte

Messagepar Dude » 10 Mai 2021 16:11

Salut,

Pas la peine de descendre sur la propriété .TextFieldMaster.
Il faut agir sur .Anchor dans laquelle on retrouve les propriétés .Char...
On les voit quand on utilise XRay.

Réponse faite hors contexte(*).

(*) Fournir le contexte signifie joindre un document explicatif et exhaustif permettant de comprendre et surtout reproduire la problématique.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22626
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Writer] Mettre en gras en un champs de texte

Messagepar Kilin » 10 Mai 2021 17:13

Dude a écrit:Salut,

Pas la peine de descendre sur la propriété .TextFieldMaster.
Il faut agir sur .Anchor dans laquelle on retrouve les propriétés .Char...
On les voit quand on utilise XRay.

Réponse faite hors contexte(*).

(*) Fournir le contexte signifie joindre un document explicatif et exhaustif permettant de comprendre et surtout reproduire la problématique.


autant pour moi, voici mon document ou je tente de mettre le champs requete en BOLD.
Pièces jointes
DIALOGUE.odt
(19.15 Kio) Téléchargé 17 fois
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Kilin
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 22 Mars 2018 00:14

Re: [Writer] Mettre en gras en un champs de texte

Messagepar Dude » 10 Mai 2021 19:28

Evite de citer l'intégralité des messages, cela alourdit inutilement la lecture.

Qu'est ce que tu n'as pas compris dans :
Dude a écrit:Il faut agir sur .Anchor dans laquelle on retrouve les propriétés .Char...

Un exemple pour comprendre :
Code : Tout sélectionner   AgrandirRéduire
Sub Test
   oDoc = ThisComponent
   oChamps = oDoc.getTextFields
   for each oChamp in oChamps
      if oChamp.TextFieldMaster.Name = "requete" then exit for      
   next
   with oChamp.Anchor
      .CharWeight = 150
      .CharColor = RGB(128,0,200)
   end with
End sub

A propos des propriétés .Char... : https://wiki.openoffice.org/wiki/FR/Doc ... _Documents
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22626
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Writer] Mettre en gras en un champs de texte

Messagepar Kilin » 10 Mai 2021 20:16

bonsoir,

merci pour ta réponse!

J'ai essayé d'adapter le morceau de code que tu as indiqué mais cela ne fonctionne pas. Il faut bien déclarer oDoc, oChamps et oChamp comme object ?

Merci pour ton aide, comme je l'ai précisé je ne sis pas programmeur :-(
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Kilin
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 22 Mars 2018 00:14

Re: [Writer] Mettre en gras en un champs de texte

Messagepar Dude » 11 Mai 2021 07:08

Kilin a écrit:Il faut bien déclarer oDoc, oChamps et oChamp comme object ?

Enlève la ligne Option Explicit
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22626
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Writer] Mettre en gras en un champs de texte

Messagepar Kilin » 11 Mai 2021 08:27

Cela semble fonctionner, mais ce n'est pas tout a fait ce que je cherchais a faire.

Dans le fichier joint, j'essaie d'afficher afficherequete qui devrait inclure requete en normal + requete en gras, la cela provoque une erreur.
Pièces jointes
DIALOGUE.odt
(20.24 Kio) Téléchargé 19 fois
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Kilin
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 22 Mars 2018 00:14

Re: [Writer] Mettre en gras en un champs de texte

Messagepar Dude » 11 Mai 2021 08:52

Kilin a écrit:Cela semble fonctionner, mais ce n'est pas tout a fait ce que je cherchais a faire.

Ah bon ? Je te cite :
Kilin a écrit:je tente de mettre le champs requete en BOLD


Donc la question change maintenant pour :
Kilin a écrit:j'essaie d'afficher afficherequete qui devrait inclure requete en normal + requete en gras, la cela provoque une erreur

Tout cela n'est pas très clair.
Merci de mettre une copie écran de l'effet attendu.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22626
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Writer] Mettre en gras un champ de texte

Messagepar Kilin » 11 Mai 2021 09:08

Désolé si je me suis mal exprimé.
A la base, j'essayais de faire une fonction qui me permettrait de mettre certains éléments de la requête en gras, de la manière requete + bold("requete") + requete
Pièces jointes
dialog.jpg
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Kilin
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 67
Inscrit le : 22 Mars 2018 00:14

Re: [Writer] Mettre en gras un champ de texte

Messagepar Dude » 11 Mai 2021 10:35

Ton document ouvre un dialogue, si je l'annule, j'arrive à cette présentation :
capture.jpg


Que faut-il faire pour arriver à l'effet attendu de ces 3 paragraphes ?
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22626
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Writer] Mettre en gras un champ de texte

Messagepar jeanmi2403 » 12 Mai 2021 15:36

Salut,
Ton code reprend un exemple de Pierre-Yves Samyn, qu'il faudrait comprendre avant de le bricoler.
Il y a là dedans tout un tas de code inutile pour ton problème, et à priori une confusion entre les champs du document et les contrôles de la boîte de dialogue.
Je suppose qu'il s'agit de construire un rapport avec un certain nombre de paramètres ?
Il faudrait donc :
    Définir clairement le projet dans sa globalité
    Décomposer en tâches élémentaires
    Réaliser un programme pour chacune
Sans un apprentissage minimum de la programmation, ce sera difficile....
Note : la procédure test dans ton fichier fonctionne très bien, et fait exactement ce qui lui est demandé.
Cordialement,
Jean-Michel
LibO 7.0.6 et AoO 4.1.10 sur Windows 10 x64 & Ubuntu 20.04
LibO 7.1.0.3 sur OpenSuse & Linux MX
Avatar de l’utilisateur
jeanmi2403
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 904
Inscrit le : 18 Jan 2008 10:02
Localisation : Val de Marne


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)