field | |
neoreb | 9-Feb-2007/21:18:41+1:00 |
bonjour, Dans une view, je voudrais créer un field où le nombre maxi de caractères pouvant être saisis serait égal à 10. Est-ce possible ? | |
guest2 | 10-Feb-2007/0:18:09+1:00 |
oui avec la SNCF c'est possible:view layout [ field 100 feel [ engage: func [f a e] compose [ (:engage) f a e clear at f/text 10 ] ] ] bon le mieux c'est quand même de faire un style avec une limite paramétrable. mais le principe est là. j'explique pas la subtilité du (:engage), d'autres le feront mieux que moi | |
neoreb | 10-Feb-2007/14:08:48+1:00 |
merci ! je vais essayer de comprendre comment ca marche | |
Goldevil | 10-Feb-2007/15:55:58+1:00 |
Voici un petit morceau de code de Shadwolf qui modifie le style standard pour qu'il supporte un paramètre supplémentairestylize/master [ field: field with [ words: append words reduce ['limit func [f l][f/limited: second l next l]] limited: none ] feel [ engage: func first :engage append second :engage [ if all [face/text face/limited face/limited < length? face/text ] [ remove next at face/text face/limited system/view/caret: tail face/text show face ] ] ] ] view layout [ across label "Normal Field:" right 120 f1: field return label "Limited Field:" right 120 f2: field limit 5 ] | |
Goldevil | 10-Feb-2007/15:58:33+1:00 |
Attention! Il y a moyen de mettre plus de caractères dans la champs par un contrôle externe ou avec copy/paste. | |
guest2 | 10-Feb-2007/16:26:18+1:00 |
c'est parce que qu'il faut utiliser "clear" à la place du "remove". | |
neoreb | 10-Feb-2007/18:32:20+1:00 |
merci ! je vais essayer de comprendre comment ca marche | |
neoreb | 10-Feb-2007/19:51:51+1:00 |
bon j'ai beau lire les docs que je trouve sur engage, j'y comprends pas grand chose. Pourrais-tu m'expliquer guest2 le (:engage) ? J'ai l'impression que pour comprendre comment ca marche, il faut vraiment examiner les entrailles de view. | |
neoreb | 10-Feb-2007/22:40:09+1:00 |
bon je crois que le (:engage) n'est pas un appel recursif. Ca appelle le engage generique d'un field et pas celui specifique qu'on a réécrit. C'est ça ? | |
guest2 | 11-Feb-2007/1:41:34+1:00 |
vi vi c'est ça. On redefinit la fonction engage qui contient déjà du code. donc pour ne pas écraser ce code et continuer à l'exécuter, avant notre propre ajout, on fait ça. hum, c'est clair ? | |
neoreb | 11-Feb-2007/10:14:29+1:00 |
oui je me penche maintenant sur la solution de goldevil | |
Login required to Post. |