view | |
richard | 7-Feb-2007/16:29:52+1:00 |
bonjour, je cherche afaire un construction de champs multiple du style for i 1 10 [ bti: button ] ce qui me donnerai bt1, bt2, ... bt3 et cela dans un block fen-Bouton: layout/offset [ ]0x0 quelqu'un peut m'aider sur la syntaxe. Cordialement Richard | |
Philippe | 8-Feb-2007/0:29:08+1:00 |
Salut,blk: copy [] for i 1 10 1 [ append blk reduce [ to-set-word join "b" :i 'button to-string :i ] ] fen-Bouton: layout/offset blk 20x20 view fen-Bouton Didec fera sans doute plus court ===Philippe | |
Goldevil | 8-Feb-2007/8:48:34+1:00 |
Pas facile de faire plus court... J'aurais un petit peu différement. Dans ce cas-ci 'repeat est un petit peu plus court que 'for et avec reduce on peut utiliser directement "i" au lieu de ":i" [bloc] blk: copy [] repeat i 10 [ append blk reduce [ to-set-word join "b" i 'button to-string i ] ] fen-Bouton: layout/offset blk 20x20 view fen-Bouton [/bloc] Au total, je n'ai gagné que 3 caractères. | |
coccinelle | 8-Feb-2007/9:11:39+1:00 |
Ce n'est peut-être pas exactement l'effet voulu mais ceci est aussi intéressant :view layout [list [button] data ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"]] | |
Didec | 8-Feb-2007/9:31:35+1:00 |
Faire mieux ?! Ca dépend quel est la règle du jeu ? Ce qui a été fait est très bien. Maintenant si vous voulez plus court, c'est possible, mais pas très didactique, quoique view layout head repeat i 10 [ append [] reduce [ to-set-word join "b" i 'button form i ] ] | |
coccinelle | 8-Feb-2007/9:45:46+1:00 |
Toujours plus court : view layout repeat i 10 [ repend [][to-set-word join 'b i 'button form i] ] | |
Goldevil | 8-Feb-2007/13:57:44+1:00 |
Pas mal même si dur à comprendre. Il faut en effet saisir que c'est le bloc vide [] qui va être complété à chaque boucle et que c'est le bloc complété qui est renvoyé par la boucle à la fin. Rebol est quand même formidable. Quand on comprend bien comment ça marche on peut faire du code très concis (mais moins didactique). | |
guest2 | 8-Feb-2007/20:07:57+1:00 |
L'instruction format peut aider à simplifier l'écriture du bloc VID.format: func [str 'val][load probe replace/all mold/only str to-string val form get val] view layout repeat i 10 [ append [] format [bi: button "i"] i ] | |
richard | 9-Feb-2007/20:19:27+1:00 |
Merci à tous. Richard | |
Login required to Post. |