4D v16.3

ST Lire expression

Accueil

 
4D v16.3
ST Lire expression

ST Lire expression 


 

ST Lire expression ( {* ;} objet {; débutSél {; finSél}} ) -> Résultat 
Paramètre Type   Description
Opérateur in Si spécifié, objet est un nom d'objet (chaîne) Si omis, objet est un champ ou une variable
objet  Objet de formulaire in Nom d'objet (si * est spécifié) ou Champ ou variable (si * est omis)
débutSél  Entier long in Début de la sélection
finSél  Entier long in Fin de la sélection
Résultat  Texte in Libellé de l’expression

La commande ST Lire expression retourne la première expression présente dans la sélection courante du champ ou de la variable de texte multistyle désigné(e) par le paramètre objet.

La commande retourne le libellé de l’expression tel qu’il a été inséré dans l’objet (par exemple "maméthode" ou "[table1]champ1"). La valeur courante de l’expression n’est pas retournée. 

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 retourne les informations de l’objet en cours d'édition ; si l’objet n'a pas le focus, la commande retourne les informations de la source de données de l’objet (variable ou champ).
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. A l’exécution, la commande retourne les informations de la variable ou du champ.

Les paramètres optionnels débutSél et finSél permettent de désigner une sélection de texte dans objet. Les valeurs débutSél et finSél expriment une sélection de texte brut, sans tenir compte des balises de style éventuellement présentes dans le texte. 

  • Si vous passez débutSél et finSél, ST Lire expression recherche l’expression à l’intérieur de cette sélection.
  • Si vous passez uniquement débutSél ou si la valeur de finSél est supérieure au nombre total de caractères dans l’objet, la commande recherche l’expression entre débutSél et la fin du texte.
  • Si vous omettez débutSél et finSél, la commande recherche l’expression à l’intérieur de la sélection courante de texte.

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" : 

Constante Type Valeur Comment
ST Début sélection Entier long -1000 Désigne le premier caractère de la sélection courante de texte dans l’objet (*)
ST Début texte Entier long 1 Désigne le premier caractère du texte contenu dans l’objet
ST Fin sélection Entier long -1001 Désigne le dernier caractère de la sélection courante de texte dans l’objet (*)
ST Fin texte Entier long 0 Désigne le dernier 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.

Note : 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.

Si aucune expression n’est présente dans la sélection, la commande retourne une chaîne vide.

Sur un événement double-clic, vous vérifiez que vous êtes bien en présence d’une expression, et dans ce cas affichez un dialogue où vous avez récupéré ses valeurs afin de permettre à l’utilisateur de la modifier :

 Au cas ou
    :(Evenement formulaire=Sur double clic)
       TEXTE SELECTIONNE(*;"StyledText_t";startSel;endSel)
       Si(ST Lire type contenu(*;"StyledText_t";startSel;endSel)=ST Type expression)
          vExpression:=ST Lire expression(*;"StyledText_t";startSel;endSel)
          $winRef:=Creer fenetre formulaire("Dial_InsertExpr";Form dialogue modal déplaçable;Centrée horizontalement;Centrée verticalement;*)
          DIALOGUE("Dial_InsertExpr")
          Si(OK=1)
             ST INSERER EXPRESSION(*;"StyledText_t";vExpression;startSel;endSel)
             SELECTIONNER TEXTE(*;"StyledText_t";startSel;endSel)
          Fin de si
       Fin de si
 Fin de cas

Vous souhaitez exécuter une méthode 4D en réponse à un clic sur un lien utilisateur :

 Au cas ou
    :(Evenement formulaire=Sur clic)
              //on récupère la sélection
       TEXTE SELECTIONNE(*;"myText";startSel;endSel)
       Si(startSel#endSel)  //il y a du contenu sélectionné
                 //on lit le type de contenu
          $CT_type:=ST Lire type contenu(*;"myText";startSel;endSel)
          Si($CT_type=ST Type utilisateur//c’est un lien utilisateur
             MaMethode //on exécute une méthode 4D
          Fin de si
       Fin de si
 Fin de cas



Voir aussi  

ST INSERER EXPRESSION

 
PROPRIÉTÉS 

Produit : 4D
Thème : Texte multistyle
Numéro : 1287
Nom intl. : ST Get expression

Cette commande modifie la variable système OK

 
HISTORIQUE 

Créé : 4D v14

 
UTILISATION DE L'ARTICLE

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