2017-09-16 1 views
1

Je souhaite ajouter des éléments GUI d'une série. J'essaie code suivant, mais il ne fonctionne pas:Ajout d'éléments GUI d'une série en rouge

mylist: ["first" "second" "third" "fourth" ] 

view[ 
    foreach i mylist [ 
     text i ]] 

L'erreur est:

*** Script Error: VID - invalid syntax at: [foreach ll mylist] 
*** Where: do 
*** Stack: view layout cause-error 

Où est le problème et comment peut-il être résolu? Merci pour vos réponses.

Répondre

2

Rappelez-vous que ...

view [... what goes in here...] 

... est un dialecte, ce n'est pas le code régulier. C'est un dialecte spécial qui a quelques qualités évaluatives, mais les règles normales ne s'appliquent pas toujours.

Ne pas oublier qu'un dialecte est juste un bloc de valeurs comme toute autre chose en rouge. Vous pouvez pré-construire en tant que tel:

view collect [ 
    foreach i mylist [ 
     keep 'text keep i 
    ] 
] 

Vous pouvez coller un PROBE entre VIEW et COLLECT là pour voir ce que vous générez et COLLECT/KEEP vous donne beaucoup de possibilités pour régler les valeurs qui finissent dans votre Voir les spécifications

+0

Oui, cela fonctionne. Merci. – rnso

1

Votre problème est que vous mélangez des dialectes. Vous avez un dialecte VID à l'intérieur du bloc View, mais vous y utilisez également le dialecte DO qui n'est pas compris par View.

Au moins dans Rebol vous ajouteriez un bloc do comme une séquence d'initialisation dans le dialecte VID, par exemple.

view [ 
    VID dialect goes here ... 
    do [ do dialect stuff that could initialize gui elements go here ] 
] 
+0

L'inclusion de la partie 'foreach' dans' do [foreach ...] 'n'aide pas. Une fenêtre apparaît mais elle n'a pas de texte visible. – rnso