Aller au contenu principal
Version: 20 R7 BETA

ST SET ATTRIBUTES

ST SET ATTRIBUTES ( {* ;} objet ; débutSél ; finSél ; nomAttribut ; valeurAttribut {; nomAttribut2 ; valeurAttribut2 ; ... ; nomAttributN ; valeurAttributN} )

ParamètreTypeDescription
*OpérateurSi spécifié, objet est un nom d'objet (chaîne)
Si omis, objet est une variable ou un champ
objetanyNom d'objet (si * est spécifié) ou
Variable ou champ Texte (si * est omis)
débutSélIntegerDébut de la nouvelle sélection de texte
finSélIntegerFin de la nouvelle sélection de texte
nomAttributTextAttribut à définir
valeurAttributText, IntegerNouvelle valeur d’attribut

Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.

Description

La commande ST SET ATTRIBUTES permet de modifier un ou plusieurs attribut(s) de style dans le ou les objet(s) de formulaire désigné(s) par objet.

Si vous passez le paramètre optionnel *, vous indiquez que le paramètre objet est un nom d’objet (une chaîne). A l'exécution, si l'objet a le focus, la commande s'applique uniquement à l'objet en cours d'édition et non à sa source de données (variable ou champ). Les modifications ne sont reportées dans la source (et donc dans les éventuels autres objets utilisant la même source) que lorsque l'objet en cours d'édition est validé via une perte de focus ou la touche Entrée. Si l'objet n'a pas le focus, la commande s'applique directement à la source de données et les modifications sont immédiatement répercutées aux éventuels autres objets utilisant la même source.
Si vous omettez le paramètre *, vous indiquez que le paramètre objet est un champ ou une variable. Dans ce cas, vous ne passez pas une chaîne mais une référence de champ ou de variable. La commande s'applique directement au champ ou à la variable et les modifications sont répercutées à tous les objets utilisant cette source, y compris l'objet ayant le focus.

Note : Vous pouvez utiliser les attributs de style avec des champs de type Texte uniquement. Les champs de type Alpha ayant une longueur prédéfinie, l’ajout d’éventuelles balises de style entraînerait des pertes de données.

La définition d’un attribut s’effectue via l’insertion ou la modification de balises HTML de style dans à l’intérieur du texte (pour plus d'informations sur ce point, reportez-vous au manuel Mode Développement). A noter que ST SET ATTRIBUTES insère des balises de style dans tous les cas, même si objet désigne des objets texte de formulaire n’ayant pas la propriété Multistyle.

Les paramètres débutSél et finSél permettent de désigner la sélection de texte à laquelle appliquer la ou les modification(s) de style à l’intérieur de l’objet. Passez dans débutSél la position du premier caractère à modifier et dans finSél la position plus un du dernier caractère à modifier. Vous pouvez passer 0 dans finSél afin de désigner automatiquement le dernier caractère du texte (passez 1 dans débutSél pour désigner le premier caractère).
Si la valeur de finSél est supérieure au nombre de caractères de l’objet, tous les caractères entre débutSél et la fin du texte seront modifiés. Si débutSél est supérieur à finSél (hormis si finSél vaut 0), la commande ne fait rien et la variable OK prend la valeur 0.
Les valeurs débutSél et finSél ne tiennent pas compte des balises de style éventuellement déjà présentes dans la zone. Elles sont évaluées sur la base du texte brut (texte duquel les balises de style ont été filtrées).
4D propose des constantes prédéfinies afin de désigner automatiquement des bornes de sélection dans les paramètres débutSél et finSél. Ces constantes sont placées dans le thème "Texte multistyle" :

ConstanteTypeValeurComment
ST End highlightEntier long-1001Désigne le dernier caractère de la sélection courante de texte dans l’objet (*)
ST End textEntier long0Désigne le dernier caractère du texte contenu dans l’objet
ST Start highlightEntier long-1000Désigne le premier caractère de la sélection courante de texte dans l’objet (*)
ST Start textEntier long1Désigne le premier caractère du texte contenu dans l’objet

(*) Vous devez passer un nom d’objet dans objet pour pouvoir utiliser cette constante. Si vous passez une référence de variable ou de champ, la commande s’appliquera à l’ensemble du texte de l’objet.

Passez dans les paramètres nomAttribut et valeurAttribut respectivement le nom et la valeur de l’attribut à modifier. Vous pouvez passer autant de paires attribut/valeur que vous souhaitez. Pour définir le paramètre nomAttribut, utilisez les constantes prédéfinies placées dans le thème Attributs de texte multistyle. La valeur à passer dans le paramètre valeurAttribut dépend du paramètre nomAttribut :

ConstanteTypeValeurComment
Attribute background colorEntier long8valeurAttribut=Valeur hexadécimale ou nom de couleur HTML (Windows uniquement)
Attribute bold styleEntier long1valeurAttribut=0 : pas d'attribut gras pour la sélection
valeurAttribut=1 : attribut gras pour la sélection
Attribute font nameEntier long5valeurAttribut=Nom de la famille de police (chaîne)
Attribute italic styleEntier long2valeurAttribut=0 : pas d'attribut italique pour la sélection
valeurAttribut=1 : attribut italique pour la sélection
Attribute strikethrough styleEntier long3valeurAttribut=0 : pas d'attribut barré pour la sélection
valeurAttribut=1 : attribut barré pour la sélection
Attribute text colorEntier long7valeurAttribut=Valeur hexadécimale ou nom de couleur HTML
Attribute text sizeEntier long6valeurAttribut=Nombre de points (numérique)
Attribute underline styleEntier long4valeurAttribut=0 : pas d'attribut souligné pour la sélection
valeurAttribut=1 : attribut souligné pour la sélection

Couleurs
Si vous passez la constante Attribute text color ou Attribute background color dans nomAttribut, vous devez passer dans valeurAttribut une chaîne contenant soit un nom de couleur HTML soit une valeur de couleur hexadécimale :

Nom de couleur HTMLValeur hexadécimale
Aqua#00FFFF
Black#000000
Blue#0000FF
Fushia#FF00FF
Gray#808080
Green#008000
Lime#00FF00
Maroon#800000
Navy#000080
Olive#808000
Purple#800080
Red#FF0000
Silver#C0C0C0
Teal#008080
White#FFFFFF
Yellow#FFFF00

Exemple

Dans cet exemple, nous modifions la taille, la couleur de texte ainsi que les attributs gras et souligné des caractères 2 à 4 du champ :

 ST SET ATTRIBUTES([MaTable]MonChamp;2;5;Attribute font name;"Arial";Attribute text size;10;Attribute underline style;1;Attribute bold style;1;Attribute text color;"Blue")

Variables et ensembles système

A l’issue de l’exécution de cette commande, la variable OK prend la valeur 1 si aucune erreur n’a été rencontrée et 0 dans le cas contraire. C’est le cas notamment lorsque l’évaluation des balises de style échoue (balise incorrecte ou manquante).

A noter qu’en cas d’erreur, la variable n’est pas modifiée. Lorsqu’une erreur se produit sur une variable lors de l’évaluation du texte, 4D transforme le texte en texte brut ; par conséquent, les caractères <, > et & seront convertis en entités HTML.

Voir aussi

FONT LIST
ST GET ATTRIBUTES