Hello Pierre,
Tu ne crées pas un machin, mais une structure complexe de données qui te
permet de définir les paramètres d'un Gradient.
La définition de ces paramètres se fait de .Style à .EndColor. Tout me
semble compréhensible, sauf pour moi col2 et col3 qui doivent être des
variables que tu définis par ailleurs.
A la dernière ligne, maForme.FillGradient, tu t'adresses à ta forme et
tu lui demandes d'appliquer le gradient que tu viens de définir (je crois).
Note bien que tu peux complexifier le gradient, puisque tu peux définir
un angle (de propagation je suppose), un point de démarrage, une
variation d'intensité, le nombre de pas de calcul etc. C'est très
chouette, cette fonction, je suis content que tu l'aies découverte ;-)
Bonne journée,
Thierry
Le 04.06.20 à 11:34, Pierre Choffardet a écrit :
Voilà le petit bout de code qui fait le boulot
Dim Gradient as new com.sun.star.awt.Gradient
Là je ne comprends pas ce que je fais. J'imagine que je crée un
machin,une pièce qui s’emboite bien le moment venu
Gradient.Style = 2
Gradient.Angle = 0
Gradient.Border = 0
Gradient.XOffset = 25
Gradient.YOffset = 0
Gradient.StartIntensity = 100
Gradient.EndIntensity = 100
Gradient.StepCount = 64
Gradient.StartColor = col2
Gradient.EndColor = col3
maForme.FillGradient = Gradient
C'est peut être bien compliqué, mais ça fait le taf
Pierre
Le 04/06/2020 à 11:21, Pierre Choffardet a écrit :
Bonjour,
J'ai finalement réussi à le faire, je vais mettre le bout de code, ça
doit correspondre à ce qui est dit. j'avoue que je deviens un pro du
copier-coller sans comprendre.
Il faut initialiser l’ensemble de propriétés du gradient, sinon,
celles qui ne sont forcées sont remise à zéro
J'arrive au bout d'une belle macro, il me reste à localiser un objet
graphique qui se trouve dans une zone des diapos et à modifier un
style de présentation, j'arrive à modifier les styles standards, mais
pas ceux-là
Pierre
Le 03/06/2020 à 22:27, Jean-Francois Nifenecker a écrit :
Bonsoir Pierre,
Le 02/06/2020 à 11:28, Pierre Choffardet a écrit :
Je souhaite modifier les propriétés de remplissage de type gradient
d'une forme.
J'arrive à le faire pour des remplissages simples, mais pas pour un
gradient.
J'utilise XRay pour trouver les propriétés, ainsi, j'ai trouvé la
propriété FillGradient de l'objet, qui est fait une structure.
Cette structure comporte différentes propriétés dont StartColor et
EndColor, ce qui correspond bien aux deux propriétés que je veux
changer.
Voilà le petit bout de code que j'ai fait :
Dim monDocument as object, maPage as object, lesPages as objectDim
lesArrPlans as object, unArrPlan as object, bgArrPlan as object
Dim maForme as object
Dim Gradient as object
Const col1 as Long = 082*65536 + 144 * 256 + 139 'Turquoise
Const col2 as Long = 229*65536 + 226 * 256 + 202 'Cool gray
Const col3 as Long = 071*65536 + 045 * 256 + 051 'Brownish purpule
Const col4 as Long = 231*65536 + 071 * 256 + 046 'orange-red
Const colBl as Long = 255*65536 + 255 * 256 + 255 'Blanc
monDocument = thisComponent
lesArrPlans = monDocument.MasterPages
unArrPlan = lesArrPlans(1)
maForme = unArrPlan.GetByName("MD")
Gradient = maForme.FillGradient
Gradient.StartColor = col2
Gradient.EndColor = col4
Mon problème vient peut-être du fait que j'accède à une structure
et non à des propriétés, et que je le fais mal. Un peu comme la
position d'un objet
oui, dans le cas des structures, il faut :
1. créer une structure autonome de même type,
2. initialiser cette structure à partir de celle de l'objet,
3. faire les modifs voulues dans la structure "externe",
et 4. affecter la structure externe mise à jour à celle de l'objet.
Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que la
liste reçoive une copie de votre réponse.
Bien cordialement,
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.