view
richard7-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
Philippe8-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
Goldevil8-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.
coccinelle8-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"]]
Didec8-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
	]
]
coccinelle8-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]
]
Goldevil8-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).
guest28-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
]
richard9-Feb-2007/20:19:27+1:00
Merci à tous.
Richard

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2