Date: prev next · Thread: first prev next last
2020 Archives by date, by thread · List index


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.