GdipSetPenCompoundArray()



Syntaxe
Resultat.i = GdipSetPenCompoundArray(*pen, @dash.f(), count.l)
Paramètres
*pen

[in] Pointeur sur un objet Pen.

dash.f()

[in] Tableau de nombres flottants qui définissent les éléments de la ligne composée. Une ligne composée est formée par des lignes parallèles séparées par des espaces (effet multiligne). Chaque nombre du tableau est compris entre 0 et 1 et ces nombres sont classés par ordre croissant dans le tableau.

count.l

[in] Nombre d'éléments du tableau ci-dessus (paramètre dash).

Description

Cette fonction permet de donner un effet multiligne au lignes et courbes dessinées par le pen.
Ces lignes sont des lignes composées.

Une ligne composée est constituée de lignes parallèles séparées par des espaces de largeurs variables.
Les valeurs du tableau spécifient les points de départ de chaque composant - trait ou espace - de la ligne composée par rapport à la largeur du pen.

Chaque ligne ou espace a pour largeur le résultat du produit de la largeur du pen par le coefficient correspondant du tableau .

La première valeur du tableau spécifie où commence le premier élément (une ligne) sous la forme d'un pourcentage de la largeur du pen.

La deuxième valeur du tableau spécifie le début de l'élément suivant (un espace) sous la forme d'un pourcentage de la largeur du pen.

La dernière valeur du tableau spécifie où le dernier composant se termine.

Aperçu :

Exemple:

On prend un pen de 20 pixels de largeur. 1 pixel représente 5 % de la largeur du pen.
On dessine avec ce pen 3 lignes parallèles.

La première ligne aura 6 pixels de largeur soit 30% de la largeur du pen.
L'espace qui suit la 1ère ligne aura 2 pixels de largeur soit 10% de la largeur du pen.
La deuxième ligne aura 5 pixels de largeur soit 25% de la largeur du pen.
L'espace qui suit la 2ème ligne aura 3 pixels de largeur soit 15% de la largeur du pen.
La troisième ligne aura 4 pixels de largeur soit 20% de la largeur du pen.

Le tableau devra définir les 5 éléments (6 valeurs) :
La première ligne : elle commence au début du pen, l'élément vaudra 0 (0%)

Le premier interligne : il commence à 30% qui est la largeur de la première ligne, l'élément vaudra 0,3 (30%)

La seconde ligne : elle commence à 40% par rapport au début du pen, l'élément vaudra 0.40 (40%)

Le deuxième interligne : il commence à 65% par rapport au début du pen, l'élément vaudra 0,65 (65%)

La dernière ligne : elle commence à 80% par rapport au début du pen, l'élément vaudra 0.80 (80%)

La dernière ligne se termine à 100% par rapport au début du pen, l'élément vaudra 1.0 (100%)

Le croquis suivant montrent les zones à définir pour l'exemple.


Il est possible de démarrer la première ligne à une valeur différente de 0.0 et de terminer la dernière ligne à une valeur différente de 1.00

Si l'alignement du pen défini avec la fonction GdipSetPenMode() vaut #PenAlignmentInset, le mode multiligne ne fonctionne pas.

Le fichier d'exemple reprend les valeurs ci-dessus et dessine une ligne composée horizontale et une ligne composée verticale.
L'origine du pen se situe à gauche pour la ligne composée verticale et en bas pour la ligne composée horizontale.

Résultat de la fonction
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
PB - OS
PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium