1 | |||||||||||
Auteur | Messages | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
O.Coquet | #1 Posté aujourd'hui à 14:08:29 | ||||||||||
Ce qui n'est pas devra-t-être inventé | Cette fonction très puissante est assez mal documentée voici donc une version d'exemple un peu plus simple à comprendre: Le but de cette fonction est d'évaluer (interpréter) une chaine de caractères (string) comme si c'était une ligne de code. elle prend deux paramètres: une variable String qui contient la ligne de code Une variable collection qui contient des "pseudo variables" premier exemple, celui de la doc Gambas revisité pour être plus clair.
La valeur affichée sera 10 Second exemple, beaucoup plus intéressant, imaginons que nous ayons un contrôle mon_textarea sur notre formulaire FMain
Le textarea contiendra désormais "un joli texte" A cela deux conditions: Let doit être précisé dans le cas d'une assignation (=) dans la chaîne de caractères. Le chemin du contrôle concerné doit être complet "Fmain.mon_textarea.text". Dans la pratique, on peut simplifier à l’extrême cette dernière façon d'utiliser éval() en écrivant la ligne comme ceci:
Plus de variable, plus de contexte ! Si vous avez plusieurs lignes à évaluer, rajoutez un \n entre chaque ligne:
Avec ces exemples, la fonction peut paraitre superflue, mais imaginez un formulaire avec 23 boutons s'appelant respectivement btn1,btn2,...btn23. Changer la couleur de fond de tous ou quelques boutons peut paraitre fastidieux, avec eval() on crée une chaine puis une variable à incrémenter et le tour est joué, voici l'exemple...
et le tour est joué ! A noter, cette fonction est une entrée directe vers l'auto programmation puisqu'un programme peut générer lui même ses lignes de programme et les exécuter, un bon début pour une IA...... Amitié Olivier (Alias Olinux) Raspberry pi 3 et 4 Quelques autres "vieux" ordinateurs ! |