4D v16.3

Notes de programmation

Accueil

 
4D v16.3
Notes de programmation

Notes de programmation  


 

Les commandes permettant de manipuler des objets texte par programmation ne tiennent pas compte des éventuelles balises de style intégrées au texte. Elles agissent sur le texte affiché. Il s’agit des commandes suivantes :

A noter que, lorsque vous utilisez ces commandes avec des commandes de manipulation des chaînes de caractères, il est nécessaire de filtrer les caractères de formatage à l’aide de la commande ST Get plain text :

 HIGHLIGHT TEXT([Produits]Notes;1;Length(ST Get plain text([Produits]Notes))+1)

  • Thème Objets (Formulaires)
    Les commandes permettant de modifier le style des objets (par exemple OBJECT SET FONT) s’appliquent à l’objet entier et non à la sélection.
    A noter que si l’objet n’a pas le focus au moment de l’exécution de la commande, la modification est appliquée simultanément à l’objet (la zone de texte) et à sa variable associée. Si l’objet a le focus, la modification est effectuée sur l’objet mais pas sur la variable associée. La modification n’est appliquée à la variable qu’au moment où l’objet perd le focus. Gardez ce principe à l’esprit lorsque vous programmez les zones de texte. 

Si l’option "Stocker les balises par défaut" est cochée pour l’objet, l’utilisation de ces commandes provoquera une modification des balises enregistrées avec chaque objet.

A compter de 4D v14, un nouveau mode d’interaction a été défini entre les commandes génériques telles que OBJECT SET RGB COLORS ou OBJECT SET FONT STYLE et les zones de texte multistyle.

Dans les versions précédentes de 4D, l’exécution d’une de ces commandes modifiait le contenu des balises de style personnalisées éventuellement insérées dans la zone. Désormais, seules les propriétés par défaut sont affectées par ces commandes (ainsi que les propriétés stockées via les balises par défaut, le cas échéant). Les balises de style personnalisées sont conservées telles quelles. 

Par exemple, soit une zone multistyle dans laquelle les balises par défaut ont été stockées :

Le texte brut de la zone est le suivant :

<span style="text-align:left;font-family:'Segoe UI';font-size:9pt;color:#009900">Ceci est un mot <span style="color:#D81E05">rouge</span></span>

Si vous exécutez le code suivant :

 OBJECT SET COLOR(*;"maZone";-(Blue+(256*Yellow)))

Avec 4D v14, la couleur rouge est préservée :

4D v14versions précédentes
<span style="text-align:left;font-family:'Segoe UI';font-size:9pt;color:#0000FF">Ceci est un mot <span style="color:#D81E05">rouge</span></span>
<span style="font-family:'Segoe UI';font-size:9pt;text-align:left;font-weight:normal;font-style:normal;text-decoration:none;color:#0000FF;"><span style="background-color:#FFFFFF">Ceci est un mot rouge</span></span>

Les commandes génériques sont les suivantes :

OBJECT SET RGB COLORS
OBJECT SET COLOR
OBJECT SET FONT
OBJECT SET FONT STYLE
OBJECT SET FONT SIZE

Dans le contexte des zones de texte multistyles, les commandes génériques doivent être utilisées pour définir les styles par défaut uniquement. Pour gérer les styles lors de l’exécution de la base, il est recommandé d’utiliser les commandes du thème "Texte multistyle".

Lorsqu’elle est utilisée avec une zone de texte riche, la commande Get edited text (thème Evénements formulaire) retourne le texte de la zone courante en incluant les éventuelles balises de style. 

Pour récupérer le texte "brut" (texte sans balises) en cours d’édition, vous devez utiliser la commande ST Get plain text :

 ST Get plain text(Get edited text)

Les recherches et les tris effectués parmi des objets multistyles tiennent compte des éventuelles balises de style enregistrées dans l’objet. Si une modification de style a été apportée à l’intérieur d’un mot, une recherche sur ce mot sera infructueuse. 

Pour pouvoir effectuer des recherches et des tris valides, vous devez utiliser la commande ST Get plain text. Par exemple :

 QUERY BY FORMULA([MaTable];ST Get plain text([MaTable]MonchampStyle)="très bien")

Afin d’assurer la compatibilité multi-plate-forme des textes manipulés dans la base de données, 4D à compter de la v14 normalise automatiquement les fins de ligne afin qu’elles n’occupent qu’un seul caractère '\r' (retour chariot). Cette normalisation est effectuée au niveau des objets de formulaire hébergeant du texte multistyle ou du texte brut (variables ou champs). Les fins de ligne non natives ou utilisant un mélange de plusieurs caractères (par exemple '\r\n') sont considérées comme un seul '\r'.

A noter que, conformément à la norme XML (format des textes multistyles), les commandes de texte multistyle normalisent également les fins de ligne des variables texte non associées à des objets.

Ce principe facilite l’utilisation des commandes de texte multistyle ou du type HIGHLIGHT TEXT dans un contexte multi-plate-forme. Vous devez toutefois en tenir compte dans vos traitements si vous manipulez des textes de provenance hétérogène.



Voir aussi  

OBJECT SET COLOR
OBJECT SET FONT
OBJECT SET FONT SIZE
OBJECT SET FONT STYLE
OBJECT SET RGB COLORS

 
PROPRIÉTÉS 

Produit : 4D
Thème : Texte multistyle

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)