vdi - list
awsoft9-Nov-2008/22:24:05+1:00
bonjour,
juste une petite question. Je voudrais crer une liste avec plusieurs colones.

comme dans l'exemple suivant:
view layout [
vh2 "Films:"
list 144x60 [
origin 0
across
text 60
text 80
] data [
["Back to the Future" "1:45"]
["Independence Day" "1:55"]
["Contact" "2:15"] ] ]

Mais comment faire pour pouvoir selectionner une ligne?

merci

PS: que pensez vous de RebGui?
Bertrand10-Nov-2008/11:13:40+1:00
J'ai essayé comme ça, et il semble que ça fonctionne :
REBOL []

view layout [
  vh2 "Films:"
  text-list with [
    size: 144x60
    origin: 0x0
    text: 60
    text: 80
    data: [
      ["Back to the Future" "1:45"]
      ["Independence Day" "1:55"]
      ["Contact" "2:15"] 
    ]
  ]
]

... mais je ne maîtrise pas très bien encore ce type de face
Bertrand10-Nov-2008/11:17+1:00
... P.S. : sauf pour across, je ne sais pas où/comment l'insérer !
Bertrand10-Nov-2008/12:10:13+1:00
awsoft :
PS: que pensez vous de RebGui?

Personnellement, je m'habitue peu à peu au VID, tout cru

Je n'aime pas trop ajouter des couches supplémentaires à mes modestes programmes.

On peut déjà faire pas mal de chose avec le VID et aussi directement avec View sans passer par VID. C'est un peu plus fastidieux, pas aussi compliqué qu'on croit, même si c'est plus "complexe". En tout cas on maitrise mieux ce que l'on fait puisqu'on utilise directement les objets graphiques sans passer par un dialecte ...

L'utilisation de with permet déjà une approche hybride mi-VID, mi-VIEW ... ou mi-figue, mi-raisin mais ça porte ses fruits !

Bertrand10-Nov-2008/16:54:07+1:00
Encore moi

Sinon j'ai vu quelques trucs qui pourraient répondre à ta première question dans http://www.rebol.org/library/scripts/vid-usage.r au chapître List.

Bon, voilà, j'arrête de monopoliser la parole ...
JJV11-Nov-2008/14:28:46+1:00
Bonjour,

Voici du code avec une approche colonne avec RebGui.
Perso je trouve cela plutt réussi.


REBOL []

do %rebgui.r

window: make block! [
        panel -1x-1 data [
                tb: table 100x40 options [
                        "col-1" 'right 0.33 "col-2" 'right 0.33 "col-3"
'right 0.33
                ] data [1 2 3 4 5 6]
                return
                button -1 "Set-columns" [
                        tb/remove-row [1 2]
                        tb/set-columns ["col-1" 'right 0.5 "col-2" 'right
0.5]
                        tb/add-row [7 8 9 10]
                ]
                button "Exit"  [quit]
        ]
]

display "Test RebGUI table" window

do-events



--------------------

le code vient de la source, il n'est pas de moi.
http://www.rebol.org/ml-display-thread.r?m=rmlRHXC

---------------------

pour rebgui
http://www.dobeash.com/download.html

do rebgui.r
;à chargé dans ton application
-----------------------


Bon dev
perso je trouve Rebgui excellent dommage qu'il n'y a pas plus d'exemple de code, comme mysql-protocol.r.

JJV
Bertrand11-Nov-2008/18:59:17+1:00
JJV :
"perso je trouve Rebgui excellent dommage qu'il n'y a pas plus d'exemple de code, comme mysql-protocol.r."

C'est sans doute pour a qu'on n'ose pas s'en servir (enfin, je parle pour moi). Déjà qu'il faut parfois chercher àà doite et à gauche pour comprendre/apprendre le VID, on (je) hésite à utiliser un nouveau dialecte mme si, au premier abord, il semble plus pratique que le sus-nommé

Et puis il y a toujours l'ombre prometteusede Rebol 3 qui plane et qui fait aussi hésiter à s'investir plus avant...

awsoft11-Nov-2008/19:54:50+1:00
merci à tous, très sympa
Bertrand12-Nov-2008/9:30:08+1:00
N.B.: Comparaison entre VIEW, VID et RebGUI pour un même script par rapport à l'utilisation de la mémoire :

VIEW
view make face [ size: 100x50
  offset: 20x20
  edge: make edge [size: none]
  pane: make face [
    size: 100x50
    text: "Hello world"
    font: make font [
      color: 255.255.255
      shadow: 1x1
      align: 'center
    ]
    edge: make edge [size:none]
  ]
]
utilisation mémoire : 8608 ko

VID
view layout [ text "Hello world" 
font [ color: 255.255.255 shadow: 1x1] edge [1x1] 
]
Utilisation mémoire : 8632 ko

RebGUI
do %rebgui.r

display "Example" [text "Hello World!"]

do-events
Utisation mémoire > 10000 ko (en croissance constante)

Ça peut faire la différence aussi !

Par ailleurs je ne comprends pas pourquoi l'utilisation de la mémoire ne cesse d'augmenter avec RebGUI quand on affiche une fenêtre, alors qu'elle reste stable (aux alentours de 8600 ko) avec View ou Vid.
Serait-ce dû à la gestion des événements ?
Bertrand12-Nov-2008/19:24:40+1:00
Un p'tit exemple vite fait avec RebGUI, que je commence à apprendre :
REBOL []

do %rebgui.r

radiodemo: [
    ; champ d'entrée contenant un petit texte
    texte: field 120 "Programmer avec Rebol, c'est génial !" font [
        size: 16 
        style: none 
        valign: 'middle
    ]
    return
    rg: radio-group 120x5 data [1 "Normal" "Gras" "Italique" "Gras/Italique"] [
        texte/font/style: switch rg/selected [
          "Normal" [none ]
          "Gras" ['bold  ]
          "Italique" ['italic ]
          "Gras/Italique" [[bold italic] ]
        ]
        show texte
   ]
]

display  "Les boutons radio" radiodemo

do-events

N.B.: il faut mettre rebgui.r dans le même répertoire que ce script...
Bertrand13-Nov-2008/11:13:24+1:00
Sans RebGUI, ça donne ça (je n'ai pas su faire mieux !)

REBOL []

radiodemo: layout [
    ;; champ d'entrée contenant un petit texte
    texte: field 320 "Programmer avec Rebol, c'est génial !" font [
        size: 16 
        style: none 
        valign: 'middle
    ]
    ;; création d'un groupe (fstyle) de quatre 'boutons radio'
    ;; le premier 'radio' est 'on' (= choix par défaut)
    across
    
    at 20x60 
    radio of 'fstyle [texte/font/style: none show texte] on
    pad -5x-3 label "Normal" 
    
    at 95x60
    radio of 'fstyle [texte/font/style: 'bold show texte] 
    pad -5x-3 label "Gras"
    
    at 170x60
    radio of 'fstyle [texte/font/style: 'italic show texte] 
    pad -5x-3 label "Italique"
    
    at 245x60
    radio of 'fstyle [texte/font/style: [bold italic] show texte] 
    pad -5x-3 label "Gras/Italique"
]

view/title  radiodemo "Les boutons radio"

... et ça fonctionne moins bien. Il faut cliquer exactement sur les boutons pour que le choix soit validé, alors qu'avec RebGUI, on peut aussi cliquer sur le texte du bonton.

D'autre part, sans RebGUI, la programmation est un peu plus complexe (positionnement des boutons/des étiquettes), moins concise (répétition des affectations pour texte/font/style). Donc vive RebGUI !

Le seul (petit) hic, c'est l'utilisation de la mémoire, qui monte, qui monte avec RebGUI au-dessus de 10000 ko, alors que sans on a d'abord un peu plus de 8000 ko, et, si on réduit la fenêtre puis qu'on la restaure ça diminue et ça reste à moins de 3000 ko.

Quelqu'un aurait-il une explication et peut-être un remède à cela ?
Didec13-Nov-2008/12:03:53+1:00
Pour View, il y a plus simple : le style radio-line.
En l'utilisant, on simplifie drôlement.

Le code ci-dessous utilise 'set-font qui permet de modifier la police d'un objet en s'abstenant de s'occuper de la dupliquer si elle est partagée (la fonction s'en charge).

Elle n'est pas nécessaire puisque tu spécifie toi-même une police pour "texte", mais je voulais en profiter pour la rappeler au bon souvenir des Reboliens/Reboleurs.

{code]REBOL []

radiodemo: layout [
;; champ d'entrée contenant un petit texte
texte: field 320 "Programmer avec Rebol, c'est génial !" font [
size: 16
style: none
valign: 'middle
]
;; création d'un groupe (fstyle) de quatre 'boutons radio'
;; le premier 'radio' est 'on' (= choix par défaut)

;; on crée un style pour définir le nom du groupe et ne pas avoir à le répéter à chaque fois
style rl radio-line of 'fstyle

rl "Normal" [changer-font-texte none] on
rl "Gras" [changer-font-texte 'bold]
rl "Italique" [changer-font-texte 'italic]
rl "Gras/Italique" [changer-font-texte [bold italic]]
]


changer-font-texte: func [val] [
   if block? :val [foreach v :val [set-font texte style v]]
   if any [word? :val none? :val] [set-font texte style none set-font texte style :val]
   show texte
]

view/title radiodemo "Les boutons radio"[/code]
Didec13-Nov-2008/12:05:33+1:00
Arg ! Faute de frappe et pas de fonction "Edite" ! Mince.
On recommence pour le code
REBOL []

radiodemo: layout [
    ;; champ d'entrée contenant un petit texte
    texte: field 320 "Programmer avec Rebol, c'est génial !" font [
        size: 16 
        style: none 
        valign: 'middle
    ]
    ;; création d'un groupe (fstyle) de quatre 'boutons radio'
    ;; le premier 'radio' est 'on' (= choix par défaut)

    ;; on crée un style pour définir le nom du groupe et ne pas avoir à le répéter à chaque fois    
    style rl radio-line of 'fstyle
    
    rl "Normal" [changer-font-texte none] on
    rl "Gras" [changer-font-texte 'bold] 
    rl "Italique" [changer-font-texte 'italic] 
    rl "Gras/Italique" [changer-font-texte [bold italic]]
]


changer-font-texte: func [val] [
	if block? :val [foreach v :val [set-font texte style v]]
	if any [word? :val none? :val] [set-font texte style none set-font texte style :val]
	show texte
]

view/title  radiodemo "Les boutons radio"
Bertrand13-Nov-2008/12:45:25+1:00
Super !

Plein de choses que je ne connaissais pas ... faute de documentation(s) précise(s) sur VID

Autant RebGUI manque d'exemples, autant VID manque de docs.

J'aime bien la concision du script et la fonction qui se charge de la modification de style. Est-il possible d'avoir les boutons en ligne, avec un across ou quelque chose comme ça ?

En fait, bien que je commence à apprécier RebGUI, j'aimerais ne pas en être trop dépendant ('suis un peu maniaque)

Autres questions :
- Où trouver, ou comment découvrir par soi-même, les fonctions "cachées" ou "mystérieuses" du VID ?
- Y a-t-il une explication, que je sois capable de comprendre , à la différence d'utilisation de la mémoire entre VID et RebGUI (j'ai posté à propos de ça sur un autre 'topic') ?
Bertrand13-Nov-2008/12:50:26+1:00
Est-il possible d'avoir les boutons en ligne, avec un across ou quelque chose comme ça ?

Je me réponds à moi-même : oui, il suffisait d'essayer
Didec13-Nov-2008/16:27:44+1:00
Perso, j'ai exploré VID et je l'explore encore grâce à Anamonitor. Mais il permet d'explorer Rebol en général et n'est pas limité à VID !
Il est là, avec pleins d'autres choses intéressantes !
http://www.rebol.it/romano/

Pour les fonctions cachées, tu peux utiliser Anamonitor,
ou 'help et 'source tout simplement :
help set-
help functions!


Je n'ai jamais utilisé Rebgui, car comme toi, j'aime ne pas être trop dépendant. Donc j'ai toujours rajouté à VID ce qui me manquait, cela me forcait à l'explorer (ce que j'aime bien faire), à le comprendre et à comprendre Rebol, sa syntaxe, des astuces de code par la même occasion.

Pour ce qui est de la différence de RAM entre VID et Rebgui :
- déjà, charger rebgui c'est avoir VID ET rebgui en mémoire, puisque rebol/view a déjà VID de chargé au lancement. Donc forcément, ça prend plus de RAM.
- si la mémoire augmente constamment, c'est la gestion d'évènements qui le provoque. A un moment ça se stabilise car le GC recycle. Je l'ai constaté avec VID il y a déjà longtemps. Peut être cela a-t-il évolué dans les dernières versions, je ne sais pas.
Didec13-Nov-2008/16:32:09+1:00
Argh, "Edit Post" please !!

C'est
help function!
Bertrand13-Nov-2008/17:53:14+1:00
Merci pour ta réponse et tes conseils.

Je suis assez d'accord pour ce qui est de rajouter au fur et à mesure ce qui manque. Rebol est assez génial pour ça. Et de fait, on est obligé (et on se fait un plaisir) d'explorer à la fois la langage lui-même mais aussi diverses façons de programmer la même chose.

A propos de la RAM, avec le VID ça se stabilise très vite et ça recycle rapidement.

Depuis un certain temps je n'arrive plus à utiliser Anamonitor, j'ai toujours ce message d'erreur qui bloque tout :
** Script Error: length? expected series argument of type: series port tuple bitse
t struct
** Where: rejoin
** Near: length? first :x "] " mold

C'est bien dommage parce qu'il y a un moment je trouvais ça bien utile, même si je ne pigeais pas tout. Maintenant je comprends mieux certains aspects de View mais il me manque la doc ...

Je crois avoir trouvé l'endroit où ça bogue mais je ne comprends pas pourquoi et ne peut donc pas corriger. A moins que ce soit la version de Rebol (Rebol/View 2.7.6) qui soit fautive ?

Ou alors Anamonitor a changé de version et je n'ai pas la bonne ?

En attendant je retourne à mes boutons
Didec13-Nov-2008/18:03:03+1:00
Anamonitor 3.0.0 semble bien fonctionner avec View 2.7.6.

Comment obtiens-tu l'erreur en question (quelles manips précises ?) ??
Bertrand13-Nov-2008/18:06:15+1:00
Pour Anamonitor c'est réglé, je viens de trouver sur ce site: http://www.rebol.it/romano/anamonitor.r , une version qui fonctionne.

Celle que l'on lance à partir VID Style Ancestry ne semble plus à jour, y compris celle que l'on peut charger à partir du Viewtop.
Bertrand15-Nov-2008/18:58:33+1:00
Didec   13-Nov-2008/18:03:03+1:00
"Anamonitor 3.0.0 semble bien fonctionner avec View 2.7.6.

Comment obtiens-tu l'erreur en question (quelles manips précises ?) ??"



Pour info : en fait, je lançais juste anamonitor.r par un classique double-clic et j'obtenais immédiatement ce message d'erreur.

Entre temps j'ai trouvé Anamonitor 2 qui plante un peu sur les menus, puis tout de suite après Anamonitor 3.0 qui fonctionne comme un charme

Mais si on utilise Anamonitor à partir de VID-Ancestry, ça continue à planter, idem pour celui qu'on récupère à partir du View top -> REBOL.org:scripts/alpha/index/a/anamonitor.r qui est la version 1.1.7
awsoft19-Nov-2008/18:56:34+1:00
bonsoir tout le monde.

Pour revenir à mon petit problème de list, j'ai trouvé mon bonheur avec list-view.r
www.hmkdesign.dk/rebol/list-view

merci encore à tous pour l'aide apportée.

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2