GdipSetPenDashArray()



Syntaxe
Resultat.i = GdipSetPenDashArray(*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 en pointillé. Une ligne pointillée est formée alternativement par des tirets séparés par des espaces. Les valeurs du tableau définissent les longueurs des tirets et des espaces.
La longueur de chaque tiret et espace est le produit de la valeur de l'élément correspondant dans le tableau par la largeur de Pen.
Chaque valeur du tableau doit être strictement supérieure à 0.

count.l

[in] Nombre d'éléments du tableau ci-dessus (paramètre dash).
Cette valeur doit être comprise entre 1 et le nombre d'éléments du tableau.

Description
Cette fonction permet de définir une ligne en pointillé constituée de tirets et d'espaces.

Les longueurs des tirets et espaces sont définies par les éléments du tableau dash.
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.

Le premier élément définit la longueur d'un tiret, le deuxième élément définit la longueur d'un espace, le troisième élément définit la longueur d'un tiret, etc.

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

La première valeur du tableau spécifie le coefficient pour le premier élément qui est un tiret.

La deuxième valeur du tableau spécifie le coefficient pour le deuxième élément qui est un espace

Et ainsi de suite.

Lorsque le trait à dessiner est plus long que la longueur totale des tirets et espaces, il y a répétition du motif.

Divers aperçus :

Il est possible de donner une forme arrondie ou triangulaire pour les extrémités des tirets avec la fonction GdipSetPenDashCap197819().

Exemple:

On prend un pen de 6 pixels de largeur.

On dessine avec ce pen un premier tiret qui sera long de 24 pixels (4 fois la largeur du pen).
Ensuite l'espace sera long de 12 pixels (2 fois la largeur du pen).
Ensuite un second tiret qui sera long de 6 pixels (1 fois la largeur du pen).
Et pour terminer un espace qui sera long de 18 pixels (3 fois la largeur du pen).

Voici les 4 éléments d'un tableau nommé Elements.

Elements(0) = 4
Elements(1) = 2
Elements(2) = 1
Elements(3) = 3

On obtient ceci :

Le croquis suivant montre les zones définies de l'exemple.


Le premier fichier d'exemple dessine les 4 lignes pointillées de l'image divers aperçus.
Le second fichier d'exemple montre les trois modes d'extrémité des tirets, normal, arrondi et triangulaire. A noter que le début du pen n'a pas l'effet arrondi ou triangulaire.
Résultat de la fonction

Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.

Si au moins une des valeurs du tableau dash est inférieure ou égale à 0, la fonction retourne l'erreur #InvalidParameter.
Si le paramètre count est inférieur à 0 ou supérieur au nombre d'éléments du tableau dash, la fonction retourne l'erreur #InvalidParameter.

Si la fonction échoue pour d'autres raisons, 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