view
neoreb12-Dec-2006/14:24:21+1:00
Bonjour,

Je suis neophyte en rebol.

l'exemple suivant fourni sur la doc ne marche pas. Il semblerait que les parametres de circle ne sont pas evalués.
Pourriez-vous m'aider
merci

rebol []
pos: 0x0
size: 0
view layout [
box 400x400 black effect [
draw [
circle 100x200 + pos 50 - size
circle 200x200 + pos 50 + size
circle 300x200 + pos 50 - size
]
]
]
Goldevil12-Dec-2006/16:51:21+1:00
Le problèe se trouve au niveau de ce qui suit les coordonnées de chaque cercle ( + pos 50 - size ).

dans un block de type draw, tu dois mettre des choses qui correspondent au dialecte draw (qui est en fait une sorte de sous langage de rebol). Ce n'est pas le cas.

D'ailleurs si tu les enlève ces infos supplémentaires, cela s'affiche correctement.

rebol []
pos: 0x0
size: 0
view layout compose [
	box 400x400 black effect [
		draw [
			circle 100x200
			circle 200x200
			circle 300x200
		]
	]
]


Tu trouveras sur http://www.rebol.org pas mal de scripts qui utilisent draw et desquels tu peux t'inspirer.
guest212-Dec-2006/18:41:30+1:00
il faut peut-être préciser que dans les précédentes versions du dialect draw, on draw pouvait évaluer du code mais maitenant c'est inopérant pour cause de sécurisation.
Donc si tu as des calculs à faire, il faut le faire avant de passer la main à draw.


par exemple, ça, ça devrait marcher

...
draw compose [
circle (100x200 + pos) (50 - size)
circle (200x200 + pos) (50 + size)
circle (300x200 + pos) (50 - size)
]
guest213-Dec-2006/0:10:20+1:00
il faut peut-être préciser que dans les précédentes versions du dialect draw, on draw pouvait évaluer du code mais maitenant c'est inopérant pour cause de sécurisation.
Donc si tu as des calculs à faire, il faut le faire avant de passer la main à draw.


par exemple, ça, ça devrait marcher

...
draw compose [
circle (100x200 + pos) (50 - size)
circle (200x200 + pos) (50 + size)
circle (300x200 + pos) (50 - size)
]
neoreb13-Dec-2006/10:38:43+1:00
BOnjour

Merci pour les reponse.
J'ai essayé la solution avec compose mais ca ne marche pas
neoreb13-Dec-2006/10:44:13+1:00
l'exemple que j'ai fourni provient de:

http://www.rebol.net/cookbook/recipes/0047.html
Didec13-Dec-2006/13:08:09+1:00
Cet exemple date d'avant la modif du dialecte Draw indiqué par Guest2.

Cet exemple devrait marcher :
rebol []
pos: 0x0
size: 0

draw-instr: [
	circle (100x200 + pos) (50 + size)
	circle (200x200 + pos) (50 - size)
	circle (300x200 + pos) (50 + size)
]


view layout compose [
	across
	text "Position :"
	rotary "0x0" "50x0" "50x50" "0x50" [
		pos: load face/text
		f-box/effect/draw: compose draw-instr
		show f-box
	]
	text "Taille :"
	rotary "0" "10" "20" "30"  [
		size: load face/text
		f-box/effect/draw: compose draw-instr
		show f-box
	]
	return
	f-box: box 400x400 black effect reduce [
		'draw compose draw-instr
	]
]
neoreb16-Dec-2006/11:09:41+1:00
merci beaucoup
effectivement ca marche
mais c'est beaucoup moins simple que l'exemple qui marchait avec l'ancienne version de draw
dommage
Didec18-Dec-2006/14:58:28+1:00
C'est le pb avec la sécurité : ouvrir la porte avec la clé c'est moins simple que d'appuyer seulement sur la poignée

Le dialecte Draw ne support plus l'interprétation de code. Mais il supporte encore les "variables". Donc tu peux avoir un code Draw allant chercher les coordonnées dans les variables.

Par exemple :

Rebol []

pos: 50x50
size: 30

view layout [
	text "Position :"
	rotary "0x0" "50x0" "50x50" "0x50" [
		pos: load face/text
		show f-box
	]
	text "Taille :"
	rotary "50" "10" "20" "30"  [
		size: load face/text
		show f-box
	]
	return
	f-box: box 400x400 black effect [
		draw [circle pos size]
	]
]

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2