[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 !
Kilin
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 22 mars 2018 00:14

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

Message par Kilin »

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

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
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25126
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message par Dude »

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.
Kilin
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 22 mars 2018 00:14

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

Message par Kilin »

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é 67 fois
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25126
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message par Dude »

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

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
Kilin
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 22 mars 2018 00:14

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

Message par Kilin »

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
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25126
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message par Dude »

Kilin a écrit :Il faut bien déclarer oDoc, oChamps et oChamp comme object ?
Enlève la ligne Option Explicit
Kilin
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 22 mars 2018 00:14

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

Message par Kilin »

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é 64 fois
Version: 5.4.5.1.M2
Obligation de version travail
Windows 7

Version 6.4.7.2 (x64)
Domicile
Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25126
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message par Dude »

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.
Kilin
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 22 mars 2018 00:14

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

Message par Kilin »

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
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25126
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

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

Message par Dude »

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
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 10:02
Localisation : Val de Marne

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

Message par jeanmi2403 »

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 :
  1. 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.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
Verrouillé