Main

Guida A Rebol

Main.GuidaARebol History

Hide minor edits - Show changes to output

February 13, 2013, at 03:01 PM by Massimiliano Vessi -
Changed lines 48-49 from:
Rebol 3 non solo e' gratis, ma e' anche OPEN SOURCE, potete scaricare sorgenti da qui: https://github.com/rebol/r3
Mentre una guida per creare rebol per il vostro sistema operativo è qui: https://github.com/hostilefork/r3-hf/wiki
to:
Rebol 3 non solo e' gratis, ma e' anche OPEN SOURCE, potete scaricare sorgenti originali da qui: https://github.com/rebol/r3
Ma adesso esiste una versione un po' piu' curata qui: https://github.com/angerangel/r3bazaar
February 13, 2013, at 03:00 PM by Massimiliano Vessi -
Changed lines 19-36 from:
%newwin%[[http://www.rebol.com/download-view.html]]%height=40px%Attach:logo-win32.gif Attach:tux.jpg Attach:logo-Mac.gif Attach:logo-obsd.gif%%

Se volete piu' informazioni esiste il portale in lingua
'''inglese''': %newwin%[[http://rebol.informe.com]

E il gruppo
'''Facebook''': %newwin%[[http://www.facebook.com/groups/rebol/]] %height=40px%Attach:facebook.jpg%%

E  la community G+
:

Il pagina '''Rebol World''' contenete tutti i siti dedicati a Rebol:  [[http://www.maxvessi.net/rebsite/wr/]] http://www.maxvessi.net/rebsite/wr/Earth.gif

Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com  %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%%
(:html:)
<script type="text/javascript" src="http://output13.rssinclude.com/output?type=js&amp;id=553053&amp;hash=5b79a275a71a0d5a1b459fe1aa1a22e2"></script>
(:htmlend:)


Potete scaricare tantissimi esempi da: [[http://www.rebol.org/script-index.
r]] %height=40px%Attach:rebol_org.png%%
to:
*%newwin%[[http://www.rebol.com/download-view.html]]

Se volete piu' informazioni esiste
:
* il portale degli utenti
: http://rebol.informe.com
*il gruppo
'''Facebook''':  http://www.facebook.com/groups/rebol/
* la community G+:

*Il pagina '''Rebol World''' contenete tutti i siti dedicati a Rebol:  http://www.maxvessi.net/rebsite/wr/
*Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com
* Potete scaricare tantissimi esempi da: http://www.rebol.org/script-index.r
Added line 33:
February 13, 2013, at 02:47 PM by Massimiliano Vessi -
Changed lines 21-22 from:
Se volete piu' informazioni esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/community/forums/rebol.5/]] %height=40px%Attach:england.gif%%
to:
Se volete piu' informazioni esiste il portale in lingua '''inglese''': %newwin%[[http://rebol.informe.com]
Added lines 24-25:

E  la community G+:
January 08, 2013, at 10:47 AM by 83.103.10.149 -
Changed lines 42-43 from:
'''REBOL E' GRATIS'''
to:

!!!REBOL 2
'''REBOL 2 E' GRATIS'''
Added lines 51-57:
!!!REBOL 3

Rebol 3 non solo e' gratis, ma e' anche OPEN SOURCE, potete scaricare sorgenti da qui: https://github.com/rebol/r3
Mentre una guida per creare rebol per il vostro sistema operativo è qui: https://github.com/hostilefork/r3-hf/wiki

La guida seguente è al momento per Rebol 2, quando Rebol 3 sara' sufficientemente maturo, parlera' di Rebol 3.

Changed line 63 from:
<iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PLA8DCE29E7EA88BBB&amp;hl=it_IT" frameborder="0" allowfullscreen></iframe>
to:
<iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PLA8DCE29E7EA88BBB" frameborder="0" allowfullscreen></iframe>
October 11, 2012, at 06:06 PM by Massimiliano Vessi -
Changed lines 3105-3106 from:
Rebol gestisce e puo' creare immagini tridimensionali (il 3D), grazie allo script '''r3d2.r''' che potete scaricare da qui: http://www.rebol.org/view-script.r?script=r3d2.r
se volete divertirvi con un demo, vi consiglio questo (l'ho scritto io): http://www.rebol.org/view-script.r?script=advanced-r3d.r
to:
Rebol gestisce e puo' creare immagini tridimensionali (il 3D), grazie allo script '''r3d2.r''' che potete scaricare da qui:

http://www.rebol.org/view-script.r?script=r3d2.r

se volete divertirvi con un demo, vi consiglio questo (l'ho scritto io):

http://www.rebol.org/view-script.r?script=advanced-r3d.r
Added line 3114:
Added line 3118:
Added line 3122:
October 11, 2012, at 06:04 PM by Massimiliano Vessi -
Added lines 3102-3116:

!3D

Rebol gestisce e puo' creare immagini tridimensionali (il 3D), grazie allo script '''r3d2.r''' che potete scaricare da qui: http://www.rebol.org/view-script.r?script=r3d2.r
se volete divertirvi con un demo, vi consiglio questo (l'ho scritto io): http://www.rebol.org/view-script.r?script=advanced-r3d.r
ecco cosa fa:
(:html:)
<iframe width="420" height="315" src="http://www.youtube.com/embed/UL9Xb-fQX4U" frameborder="0" allowfullscreen></iframe>
(:htmlend:)
Tutta la documentazione per usarla è qui: http://www.rebol.org/documentation.r?script=r3d2.r

La libreria carica anche i file 3D in formato OFF, ecco un esempio:
(:html:)
<iframe width="420" height="315" src="http://www.youtube.com/embed/O0BRrqXXw-A" frameborder="0" allowfullscreen></iframe>
(:htmlend:)
October 03, 2012, at 06:08 PM by Massimiliano Vessi -
Added lines 28-30:
(:html:)
<script type="text/javascript" src="http://output13.rssinclude.com/output?type=js&amp;id=553053&amp;hash=5b79a275a71a0d5a1b459fe1aa1a22e2"></script>
(:htmlend:)
October 03, 2012, at 05:19 PM by Massimiliano Vessi -
Deleted lines 14-16:
'''Adesso sono disponibili anche le lezioni video qui: http://www.youtube.com/playlist?list=PL145514E3A0BC9C6B
oppure qui:  [[RebolVideoGuida ]] '''

Added line 34:
Changed lines 46-49 from:
!!Ecco una demo:


(:youtube -RVhBImcEAE:)
to:
!!Video dimostrativi:


Guardate questa demo:
(:html:)
<iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PLA8DCE29E7EA88BBB&amp;hl=it_IT" frameborder="0" allowfullscreen></iframe>
(:htmlend:)

!!Video guida:

Edidte una guida in inglese attraverso dei video, eccola

(:html:)
<iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PL145514E3A0BC9C6B&amp;hl=it_IT" frameborder="0" allowfullscreen></iframe>
(:htmlend
:)
October 03, 2012, at 05:14 PM by 83.103.10.149 -
Changed line 10 from:
%lfloat%Attach:RebolIOS.jpg
to:
%height=200px rfloat%Attach:RebolIOS.jpg
October 03, 2012, at 05:05 PM by 83.103.10.149 -
Changed lines 26-27 from:
E il gruppo '''Facebook''': %newwin%[[http://www.facebook.com/home.php#/group.php?gid=99459740077]] %height=40px%Attach:facebook.jpg%%
to:
E il gruppo '''Facebook''': %newwin%[[http://www.facebook.com/groups/rebol/]] %height=40px%Attach:facebook.jpg%%
Added line 31:
October 03, 2012, at 04:59 PM by 83.103.10.149 -
Deleted lines 6-11:



!!Indice Guida
(:toc:)

Changed line 12 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, script CGI, tutto con il minimo sforzo e occupa solo 500kb ''(mezzo floppy, praticamente meno di una foto!!!)''
to:
Rebol e' un linguaggio di programmazione meraviglioso e '''gratuito''', e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, script CGI, tutto con il minimo sforzo e occupa solo 500kb ''(mezzo floppy, praticamente meno di una foto!!!)''
Added lines 35-37:

!!Indice Guida
(:toc:)
July 20, 2012, at 06:32 PM by Massimiliano Vessi -
Changed line 1111 from:
 editor
to:
 editor "prova"
July 20, 2012, at 06:30 PM by Massimiliano Vessi -
Added lines 1108-1118:

!!editor
Un comodo editor di testo:
 editor
Attach:rebol-editor.jpg

!!emailer
Una finestra per inviare email (il resto del codice verra' spiegato piu' avanti):
 view layout [btn "Manda una email" [emailer ]]

Attach:rebol-emailer.jpg
July 17, 2012, at 01:49 PM by 83.103.10.149 -
Added lines 1945-1958:

E' possibile raggrupparli con il comando '''of''':

 view layout [
  text "Quale e' il pasto che preferisci?"
  radio-line "Colazione" of 'pasto
  radio-line "Pranzo" of 'pasto
  radio-line "Cena" of 'pasto
  text "Quando preferisci uscire?"
  radio-line "Di Giorno" of 'uscire
  radio-line "Di sera" of 'uscire
  ]

Attach:radio_multi.jpg
July 15, 2012, at 03:59 AM by 151.24.64.197 -
Added lines 1909-1923:

!!Scroller
Questo stile e' ottimo per far scorre dei sottopannelli e aree di testo:
 
 view layout [
        t1: area wrap system/license
        return
        scroller (as-pair 15 t1/size/y)  [
            t1/para/scroll/y: negate (face/data * second size-text t1) 
            show t1 
            ]
        ]


July 15, 2012, at 03:15 AM by 151.24.64.197 -
Changed lines 1967-1971 from:
!!Menu scelte: choice e drop-down

!!!Choice

Ecco un menu a tendina molto comodo
:
to:
!!Menu scelte: choice, drop-down e rotary
Sonno tutti elementi che permotto di scegliere da una lista di opzioni, la lista puo' essere fornita o con dei testi di seguito, oppure fornendo una serie dopo la parola '''data'''
:
Added lines 1970-1976:
 choice data [1 2 3 ]
 button
 ]
!!!Choice

Ecco un menu a tendina molto comodo:
 view layout [
Added lines 1995-2000:

!!!Rotary
E' un pulsante che cambia valore ogni volta che ci clicchiamo sopra:
 view layout [
 rotary "1" "2" "3"
 ]
July 15, 2012, at 03:08 AM by 151.24.64.197 -
Added lines 1909-1930:

!!Progress
Questo stile e' una barra di riempimento progresivo, il suo valore varia da zero a uno (decimale):

 view layout [
 a: progress
 slider [a/data: face/data show a]
 ]

!!Radio button
Lo stile '''radio''' e' utile quando l'utente deve scegliere solo una delle possibili opzioni, gli stili radio sono:
*RADIO
*RADIO-LINE

Esempio:

 view layout [
 radio-line "Opzione 1"
 radio-line "Opzione 2"
 radio-line "Opzione 3"
 ]

July 15, 2012, at 02:55 AM by 151.24.64.197 -
Added lines 1909-1922:

!!Logo-bar
Si tratta di una barra verticale con il logo Rebol 24x300:
 view layout [ logo-bar]

!!Panel
Questo oggetto e' molto comodo per raggruppare oggetti e posizionarli come volete:
 view layout [
 Text "Esempio:"
 return
 panel yellow [ text "Prova" button button]
 ]

Attach:rebol-panel.jpg
July 15, 2012, at 02:44 AM by 151.24.64.197 -
Changed lines 1902-1908 from:
to:
!!Icon
Lo stile icon crea un pulsante con una immagine e un testo, utile per fare videogiochi:
 view layout [
  icon "Clicca qui"
  ]

Attach:rebol-icon-style.jpg
July 15, 2012, at 02:38 AM by 151.24.64.197 -
Added lines 1877-1889:

Io consiglio di utilizzare gli stili label per aggiungere del testo vicino ai campi di immissione: esempio:
 view layout [
  label "Nome:"
  label "Cognome:"
  label "Testo:"
  return
  field
  field
  area
  ]

Attach:usolabel.jpg
July 15, 2012, at 02:26 AM by 151.24.64.197 -
Changed lines 1854-1859 from:


!! Input di testo

Per prendere del testo basta impostare una variabile con il tipo di input preferito '''field''' singola riga o '''area''' per più righe
: 
to:
Esistono i seguenti tipi di check:
*CHECK
*CHECK-LINE
*CHECK-MARK

'''Check-line''' e' il migliore per mettere dei testi in colonna
:
Changed lines 1861-1862 from:
  campo: field
  areatesto: area
to:
 check-line "Opzione 1"
 check-line "Opzione 2"
 check-line "Opzione 3"
Added lines 1866-1877:
Attach:checks.jpg


!! Input di testo

Per prendere del testo basta impostare una variabile con il tipo di input preferito '''field''' singola riga o '''area''' per più righe:

 view layout [
  campo: field
  areatesto: area
 ]

Changed lines 1889-1902 from:
!!Check
Esistono i seguenti tipi di check:
*CHECK
*CHECK-LINE
*CHECK-MARK

'''Check-line''' e' il migliore per mettere dei testi in colonna:
 view layout [
 check-line "Opzione 1"
 check-line "Opzione 2"
 check-line "Opzione 3"
 ]

Attach:checks.jpg
to:
July 15, 2012, at 02:23 AM by 151.24.64.197 -
Changed lines 1912-1913 from:
!!Menu scelte: choice
to:
!!Menu scelte: choice e drop-down

!!!Choice

Added lines 1928-1935:

!!!Drop-down
E' una lista, stile windows:
 view layout [
 prova: drop-down "uno" "due" "tre"
 button [print prova/text]
 ]
la varibile '''text''' vi dice quale sia la scelta (prova/text).
July 15, 2012, at 02:07 AM by 151.24.64.197 -
Added lines 1876-1889:
!!Check
Esistono i seguenti tipi di check:
*CHECK
*CHECK-LINE
*CHECK-MARK

'''Check-line''' e' il migliore per mettere dei testi in colonna:
 view layout [
 check-line "Opzione 1"
 check-line "Opzione 2"
 check-line "Opzione 3"
 ]

Attach:checks.jpg
July 15, 2012, at 01:59 AM by 151.24.64.197 -
Changed lines 1743-1744 from:

to:
  ]

Potete mettere piu' testi, uno rappresentera' il testo normale, l'altro apparira' quando viene premuto.


 view layout [
  button "Premi qui!"  "Bravo!"
  ]

Esistono i seguenti stili di bottoni:
*BTN
*BTN-CANCEL
*BTN-ENTER
*BTN-HELP
*BUTTON

Gli stili '''btn''' si ridimensionano automaticamente al testo contenuto.
Attach:auto-button.jpg
July 15, 2012, at 01:23 AM by 151.24.64.197 -
Added lines 1971-1974:

Con l'opzione offset potete decidere da dove partire a creare il sotopannello, provate ad inserire:
 es/offset: 0x0

July 15, 2012, at 01:21 AM by 151.24.64.197 -
Changed lines 1958-1970 from:
to:
!!!Sottopannelli
Creare sottopannelli e' una caratteristica molto interessante, vediamo come si fa:

 view layout [
 button "esempio 1" [es/pane:  layout [txt "esempio 1" button ] show es]
 button "esempio 2" [es/pane:  layout [txt "esempio 2" button red] show es]
 return
 bar 3x200
 return
 es: box 200x200
 ]

Attach:box2.jpg
July 15, 2012, at 01:06 AM by 151.24.64.197 -
Added lines 1947-1956:

!!Box
Il box è un rettangolo, potete colorarlo, metterci un testo dentro, ma la parte più interessante e' utilizzarlo per fare dei sotto-pannelli o menu'.
Esempio semplice box:

 view layout [
  box red "Esempio"
  ]

Attach:box.jpg
July 15, 2012, at 12:49 AM by 151.24.64.197 -
Added lines 1668-1686:

Tutti gli stili sono:
*BASE-TEXT
*CODE
*H1
*H2
*H3
*H4
*H5
*TEXT
*title
*tt
*txt
*VH1
*VH2
*VH3
*VH4
*vtext

July 15, 2012, at 12:40 AM by 151.24.64.197 -
Added lines 1709-1716:
!!Barra
L'oggetto '''bar''' e' una barra orizzontale 200x3, potete cambiare la dimensione per renderla verticale
 view layout [
  bar
  bar 3x200
  ]

Attach:barre.jpg
July 15, 2012, at 12:29 AM by 151.24.64.197 -
Added lines 1779-1799:

Sfondo scalato:

 view layout [
  backdrop logo.gif
  button "esempio"
  button "esempio"
  ]

Attach:sfondo_scalato.jpg

Sfondo ripetuto:

 view layout [
  backtile logo.gif
  button "esempio"
  button "esempio"
  ]

Attach:sfondo_ripetuto.jpg

July 15, 2012, at 12:22 AM by 151.24.64.197 -
Changed lines 1761-1762 from:
!!Casella di controllo (check)
La casella '''check''' può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee
:
to:
Oppure il punto di domanda:
Added lines 1764-1783:
  prova: choice "a" "b"
  button [ ? prova]
  ]

Prova a vedere le differenze.

!!Sfondo
Potete impostare un colore o un'immagine come sfondo. L'immagine può essere scalata o ripetuta per riempire la finestra. I comandi sono: '''backdrop''' e '''backtile'''.  Per il colore si possono usare entrambi, poichè si potrebbe utilizzare come sfondo di un'immagine trasparente.

 view layout [
  backdrop red
  button "esempio"
  ]

Attach:sfondo_rosso.jpg


!!Casella di controllo (check)
La casella '''check''' può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:
 view layout [
Added lines 1789-1790:

July 15, 2012, at 12:10 AM by 151.24.64.197 -
Added lines 1778-1789:

!!Frecce
Potete aggiungere dei pulsanti con delle frecce, potete indicare direzione e dimensione.
 view layout [
  arrow
  arrow left
  arrow right
  arrow down
  ]

Attach:arrow.jpg

May 11, 2012, at 02:30 PM by Massimiliano Vessi -
Changed line 36 from:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%% ]]
to:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com  %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%%
May 11, 2012, at 02:29 PM by Massimiliano Vessi -
Changed line 36 from:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%% ]]
to:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%% ]]
May 11, 2012, at 02:28 PM by Massimiliano Vessi -
Changed line 36 from:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png %%]]
to:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png%% ]]
May 11, 2012, at 02:27 PM by Massimiliano Vessi -
Changed line 36 from:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png ]]
to:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png %%]]
May 11, 2012, at 02:26 PM by Massimiliano Vessi -
Changed line 36 from:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png]]
to:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px% http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png ]]
May 11, 2012, at 02:25 PM by Massimiliano Vessi -
Changed line 36 from:
Un blog: http://rebol2.blogspot.com
to:
Un '''blog''' costantemente aggiornato: http://rebol2.blogspot.com [[http://rebol2.blogspot.com  | %height=40px%http://upload.wikimedia.org/wikipedia/it/0/04/Blogger_Logo_trasparente.png]]
May 11, 2012, at 02:21 PM by Massimiliano Vessi -
Added lines 335-339:
 >> aqua
 == 40.100.130

!!Colori
Ecco i nomi dei colori:
May 11, 2012, at 02:20 PM by Massimiliano Vessi -
Added lines 330-363:

!Costanti
Rebol ha gia' dei valori preimpostati, tipo il pi greco o i nomi dei colori; voi comunque potete assegnarli altri valori se volete:
 >> pi
 == 3.14159265358979

(:html:)
<TABLE BORDER="0" CELLSPACING="2" CELLPADDING="3"><TR><TD><B>Name</B></TD><TD><B>Value</B></TD><TD><B>Color</B></TD><TD>&nbsp;</TD>
<TD><B>Name</B></TD><TD><B>Value</B></TD><TD><B>Color</B></TD></TR>
<TR><TD>aqua</TD><TD>40.100.130</TD><TD WIDTH="25" BGCOLOR="#286482">&nbsp;</TD><TD WIDTH="30"></TD><TD>base-color</TD><TD>200.200.200</TD><TD WIDTH="25" BGCOLOR="#C8C8C8">&nbsp;</TD></TR>
<TR><TD>beige</TD><TD>255.228.196</TD><TD WIDTH="25" BGCOLOR="#FFE4C4">&nbsp;</TD><TD WIDTH="30"></TD><TD>black</TD><TD>0.0.0</TD><TD WIDTH="25" BGCOLOR="#000000">&nbsp;</TD></TR>
<TR><TD>blue</TD><TD>0.0.255</TD><TD WIDTH="25" BGCOLOR="#0000FF">&nbsp;</TD><TD WIDTH="30"></TD><TD>brick</TD><TD>178.34.34</TD><TD WIDTH="25" BGCOLOR="#B22222">&nbsp;</TD></TR>
<TR><TD>brown</TD><TD>139.69.19</TD><TD WIDTH="25" BGCOLOR="#8B4513">&nbsp;</TD><TD WIDTH="30"></TD><TD>coal</TD><TD>64.64.64</TD><TD WIDTH="25" BGCOLOR="#404040">&nbsp;</TD></TR>
<TR><TD>coffee</TD><TD>76.26.0</TD><TD WIDTH="25" BGCOLOR="#4C1A00">&nbsp;</TD><TD WIDTH="30"></TD><TD>crimson</TD><TD>220.20.60</TD><TD WIDTH="25" BGCOLOR="#DC143C">&nbsp;</TD></TR>
<TR><TD>cyan</TD><TD>0.255.255</TD><TD WIDTH="25" BGCOLOR="#00FFFF">&nbsp;</TD><TD WIDTH="30"></TD><TD>forest</TD><TD>0.48.0</TD><TD WIDTH="25" BGCOLOR="#003000">&nbsp;</TD></TR>
<TR><TD>gold</TD><TD>255.205.40</TD><TD WIDTH="25" BGCOLOR="#FFCD28">&nbsp;</TD><TD WIDTH="30"></TD><TD>gray</TD><TD>128.128.128</TD><TD WIDTH="25" BGCOLOR="#808080">&nbsp;</TD></TR>
<TR><TD>green</TD><TD>0.255.0</TD><TD WIDTH="25" BGCOLOR="#00FF00">&nbsp;</TD><TD WIDTH="30"></TD><TD>ivory</TD><TD>255.255.240</TD><TD WIDTH="25" BGCOLOR="#FFFFF0">&nbsp;</TD></TR>
<TR><TD>khaki</TD><TD>179.179.126</TD><TD WIDTH="25" BGCOLOR="#B3B37E">&nbsp;</TD><TD WIDTH="30"></TD><TD>leaf</TD><TD>0.128.0</TD><TD WIDTH="25" BGCOLOR="#008000">&nbsp;</TD></TR>
<TR><TD>linen</TD><TD>250.240.230</TD><TD WIDTH="25" BGCOLOR="#FAF0E6">&nbsp;</TD><TD WIDTH="30"></TD><TD>magenta</TD><TD>255.0.255</TD><TD WIDTH="25" BGCOLOR="#FF00FF">&nbsp;</TD></TR>
<TR><TD>maroon</TD><TD>128.0.0</TD><TD WIDTH="25" BGCOLOR="#800000">&nbsp;</TD><TD WIDTH="30"></TD><TD>mint</TD><TD>100.136.116</TD><TD WIDTH="25" BGCOLOR="#648874">&nbsp;</TD></TR>
<TR><TD>navy</TD><TD>0.0.128</TD><TD WIDTH="25" BGCOLOR="#000080">&nbsp;</TD><TD WIDTH="30"></TD><TD>oldrab</TD><TD>72.72.16</TD><TD WIDTH="25" BGCOLOR="#484810">&nbsp;</TD></TR>
<TR><TD>olive</TD><TD>128.128.0</TD><TD WIDTH="25" BGCOLOR="#808000">&nbsp;</TD><TD WIDTH="30"></TD><TD>orange</TD><TD>255.150.10</TD><TD WIDTH="25" BGCOLOR="#FF960A">&nbsp;</TD></TR>
<TR><TD>papaya</TD><TD>255.80.37</TD><TD WIDTH="25" BGCOLOR="#FF5025">&nbsp;</TD><TD WIDTH="30"></TD><TD>pewter</TD><TD>170.170.170</TD><TD WIDTH="25" BGCOLOR="#AAAAAA">&nbsp;</TD></TR>
<TR><TD>pink</TD><TD>255.164.200</TD><TD WIDTH="25" BGCOLOR="#FFA4C8">&nbsp;</TD><TD WIDTH="30"></TD><TD>purple</TD><TD>128.0.128</TD><TD WIDTH="25" BGCOLOR="#800080">&nbsp;</TD></TR>
<TR><TD>reblue</TD><TD>38.58.108</TD><TD WIDTH="25" BGCOLOR="#263A6C">&nbsp;</TD><TD WIDTH="30"></TD><TD>rebolor</TD><TD>142.128.110</TD><TD WIDTH="25" BGCOLOR="#8E806E">&nbsp;</TD></TR>
<TR><TD>red</TD><TD>255.0.0</TD><TD WIDTH="25" BGCOLOR="#FF0000">&nbsp;</TD><TD WIDTH="30"></TD><TD>sienna</TD><TD>160.82.45</TD><TD WIDTH="25" BGCOLOR="#A0522D">&nbsp;</TD></TR>
<TR><TD>silver</TD><TD>192.192.192</TD><TD WIDTH="25" BGCOLOR="#C0C0C0">&nbsp;</TD><TD WIDTH="30"></TD><TD>sky</TD><TD>164.200.255</TD><TD WIDTH="25" BGCOLOR="#A4C8FF">&nbsp;</TD></TR>
<TR><TD>snow</TD><TD>240.240.240</TD><TD WIDTH="25" BGCOLOR="#F0F0F0">&nbsp;</TD><TD WIDTH="30"></TD><TD>tan</TD><TD>222.184.135</TD><TD WIDTH="25" BGCOLOR="#DEB887">&nbsp;</TD></TR>
<TR><TD>teal</TD><TD>0.128.128</TD><TD WIDTH="25" BGCOLOR="#008080">&nbsp;</TD><TD WIDTH="30"></TD><TD>violet</TD><TD>72.0.90</TD><TD WIDTH="25" BGCOLOR="#48005A">&nbsp;</TD></TR>
<TR><TD>water</TD><TD>80.108.142</TD><TD WIDTH="25" BGCOLOR="#506C8E">&nbsp;</TD><TD WIDTH="30"></TD><TD>wheat</TD><TD>245.222.129</TD><TD WIDTH="25" BGCOLOR="#F5DE81">&nbsp;</TD></TR>
<TR><TD>white</TD><TD>255.255.255</TD><TD WIDTH="25" BGCOLOR="#FFFFFF">&nbsp;</TD><TD WIDTH="30"></TD><TD>yellow</TD><TD>255.255.0</TD><TD WIDTH="25" BGCOLOR="#FFFF00">&nbsp;</TD></TR>
</TABLE>
(:htmlend:)

May 08, 2012, at 03:10 PM by Massimiliano Vessi -
Changed line 1356 from:
!ESERCIZI
to:
!Alcuni esercizi
May 08, 2012, at 03:08 PM by Massimiliano Vessi -
Added lines 1381-1387:
Se vogliamo dividere un testo utilizzando uno piu' caratteri, per esempio la punteggiatura, basta fornire la stringa dei caratteri da utilizzare come divisori:

 esemp: "La rosa e' rosa. Se fosse stata viola, l'avrei chiamata violetta. Giusto?"
 parse esemp ",.?"
 == ["La" "rosa" "e'" "rosa" "Se" "fosse" "stata" "viola" "l'avrei" "chiamata" "violetta" "Giusto"]

Changed lines 1440-1441 from:
 >> a: "fiore.jpg"
 >> parse a [thru "." ["jpg"|"gif"] end]
to:
 a: "fiore.jpg"
 parse a [thru "." ["jpg"|"gif"] end]
Changed line 1443 from:
 >> parse a [to "." [".jpg"|".gif"] end]
to:
 parse a [to "." [".jpg"|".gif"] end]
Changed lines 1452-1453 from:
Per controllare l'estensione di un file con '''parse''' e' molto semplice, proviamo a controllare che il file sia un PDF:
to:
In Rebol esiste il comando '''suffix?''' per capire l'estensione di un file:
 suffix? %Esempio.pdf
 == %.pdf

Ma anche  controllare l'estensione di un file con '''parse''' e' un esercizio
molto semplice, proviamo a controllare che il file sia un PDF:
Added lines 1485-1499:
!!Estrarre del testo
Se vogliamo estrarre del testo usando delle regole, la formula piu' comune e'  '''any''' con '''skip'''. Per esempio, ipotizziamo di voler estrarre il testo che si trova tra un numero di tre cifre e il punto:
 cifre: charset "0123456789"
 esempio: {
 Nome in codice 007 Massimiliano Vessi.
 Nome in codice 012 Sassenrath Carl.
 Nome in codice 121 Semseddin Moldibi.
 }
 parse esempio [any [3 cifre copy temp to "." (print temp) | skip]]
 
 Massimiliano Vessi
 Sassenrath Carl
 Semseddin Moldibi
 == true
 
May 08, 2012, at 02:53 PM by Massimiliano Vessi -
Changed lines 1535-1543 from:
 
to:

Per avere le dimensioni dello schermo, basta interrogare '''system/view/screen-face/size'''
 >> system/view/screen-face/size
 == 1280x1024

Quindi se volete fare un programma a schermo intero basta sfruttarlo:

 view center-face layout [ at 0x0 image system/view/screen-face/size logo.gif [unview] ]

May 08, 2012, at 02:12 PM by Massimiliano Vessi -
Added lines 1531-1534:

Se volete che una finestra si apra al centro dello schermo, basta usare il comando '''center-face''':

 view center-face layout [ text "Ciao" ]
January 18, 2012, at 04:45 PM by Massimiliano Vessi -
Changed line 2830 from:
A questo punto e' possibile creare degli script come fossero normali script, basta ricordarci di mettere sempre come prima riga il percorso dell'eseguibile rebol-core e come primo output la seguente:
to:
A questo punto e' possibile creare degli script come fossero normali script, basta ricordarci di mettere sempre come prima riga il percorso dell'eseguibile rebol-core con l'opzione '''-cs''' e come primo output la seguente:
Changed line 2841 from:
e se vi collegherete col vostro browser vi apparira':
to:
e se vi collegherete col vostro browser alla pagina dello script, vi apparira':
Added lines 2844-2847:

L'opzione '''-cs''' significa:
*c  per script CGI
*s per "nessun problema di sicurezza"
January 18, 2012, at 04:37 PM by Massimiliano Vessi -
Changed lines 30-31 from:
Se volete piu' informazioni esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]] %height=40px%Attach:england.gif%%
to:
Se volete piu' informazioni esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/community/forums/rebol.5/]] %height=40px%Attach:england.gif%%
Added lines 36-37:
Un blog: http://rebol2.blogspot.com
Changed lines 43-45 from:
Tutto quello mostrato in questa guida si può fare con la versione gratuita, che fondamentalmente copre ogni aspetto della programmazione, comunque esistono anche delle versioni a pagamento per programmatori più esigenti:
to:
'''REBOL E' GRATIS'''

Tutto quello mostrato in questa guida si può fare con la versione
gratuita, che fondamentalmente copre ogni aspetto della programmazione, comunque '''esistono anche delle versioni a pagamento per programmatori piu' esigenti''':
January 18, 2012, at 04:34 PM by Massimiliano Vessi -
Changed line 18 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb ''(mezzo floppy, praticamente meno di una foto!!!)''
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, script CGI, tutto con il minimo sforzo e occupa solo 500kb ''(mezzo floppy, praticamente meno di una foto!!!)''
Added lines 2821-2839:

!Su un server meglio del PHP (script CGI)
Rebol può essere installato su un server come eseguibile per degli script CGI! In questo modo il server potra' creare dell pagine dinamice, come fa il PHP, ma con un liguaggio molto piu' semplice!
Per prima cosa bisogna scaricare la versione '''CORE''', sempre gratuita, dal sito: http://www.rebol.com/download-core.html e installarla sul proprio server. Le altre versioni non vanno bene per gli script.

A questo punto e' possibile creare degli script come fossero normali script, basta ricordarci di mettere sempre come prima riga il percorso dell'eseguibile rebol-core e come primo output la seguente:
 print "Content-type: text/html^/"
in modo che il nostro server non ci dia problemi.

Se tutto e' andato per il verso giusto possiamo provare con il seguente file, ''esempio.cgi'':
  #! /home/max/public_html/rebol-core -cs
 Rebol [ title: "Esempio.cgi"]
 print "Content-type: text/html^/"
 print [<html><body> "REBOL CGI funziona!" <br>
 "Sono le ore: " now/time  </body></html>]

e se vi collegherete col vostro browser vi apparira':
 REBOL CGI funziona!
 Sono le ore: 16:32:17
January 10, 2012, at 04:45 PM by Massimiliano Vessi -
Changed lines 2123-2124 from:
 view/new layout [
to:

view layout [
Added line 2130:
 do [ focus the-box]
Changed lines 2132-2133 from:
 focus the-box
 do-events
to:

January 10, 2012, at 04:24 PM by Massimiliano Vessi -
Added lines 1940-1941:
||Spazio ||#" " ||
||TAB ||#"^-"  ||
January 10, 2012, at 03:03 PM by Massimiliano Vessi -
Changed line 2135 from:
 if event/control/shift [...] ;controlla sia CONTROL che SHIFT
to:
 if event/contro and event/shift [...] ;controlla sia CONTROL che SHIFT
January 10, 2012, at 02:12 PM by Massimiliano Vessi -
Changed line 1941 from:
La combinazione con il tasto Control + un altro si ottoengono indicando il carattere maiuscolo con preceduto dal carattere ^
to:
La combinazione con il tasto Control + un altro si ottengono indicando il carattere maiuscolo con preceduto dal carattere ^
January 10, 2012, at 02:11 PM by Massimiliano Vessi -
Changed line 1928 from:
||border=1 width=80%
to:
||border=1
Changed lines 1931-1932 from:
||Canc    || #"^~"    ||
||Home || home ||   
to:
||Canc    ||#"^~"    ||
||Home ||home ||   
January 10, 2012, at 02:10 PM by Massimiliano Vessi -
Added lines 1907-1944:
E' possibile anche mettere delle scorciatoie senza usare degli elementi, basta usare il comando '''key''':
 view layout [
  text "Prova a premere e"
  key #"e" [alert "Hai premuto e"]
  ]
Si possono utilizzare più pulsanti per la stessa funzione, utilizzando la parola '''keycode''':
 view layout [
  text "Prova a premere e o E"
  key keycode [#"e" #"E"] [alert "Hai premuto e o E"]
  ]

Sempre grazie al comando '''keycode''' e' possibile utilizzare i tasti speciali  della tastiera ''(Inizio, Fine, PaggUp, PagDown, le freccie, ecc.)''. Ecco un esempio:
 view layout [
  text "Prova ad usare le freccie della tastiera"
  key keycode [up] [alert "Hai premuto su"]
  key keycode [down] [alert "Hai premuto giu' "]
  key keycode [left] [alert "Hai premuto sinistra"]
  key keycode [right] [alert "Hai premuto destra"]
  ]

Ecco l'elenco dei tasti speciali:
||border=1 width=80%
||!Tasto ||!Codice||
||Ins    ||insert    ||   
||Canc    || #"^~"    ||
||Home || home ||   
||Fine ||end ||
||PageUp ||page-up ||
||PageDown ||page-down||
||Freccia sinistra ||left ||
||Freccia destra ||right ||
||Freccia su ||up ||
||Freccia giu' ||down ||
||CTRL+S ||#"^S" ||
La combinazione con il tasto Control + un altro si ottoengono indicando il carattere maiuscolo con preceduto dal carattere ^


November 24, 2011, at 02:23 PM by Massimiliano Vessi -
Changed line 76 from:
'''LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPORTATI'''
to:
'''LA VERSIONE DI REBOL DA SCARICARE E' LA 2.x.x , LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPORTATI'''
November 23, 2011, at 01:02 PM by Massimiliano Vessi -
Changed lines 1671-1672 from:
!!Casella di controllo (check)
La casella
'''check''' può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:
to:
!!Analizzare qualunque elemento in VID

Usate l
'editor integrato di Rebol per analizzare qualunque elemento vi interessi conoscere, esempio:
Added lines 1676-1682:
  prova: choice "a" "b"
  button [ editor prova]
  ]

!!Casella di controllo (check)
La casella '''check''' può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:
 view layout [
Added lines 1719-1732:
!!Menu scelte: choice

Ecco un menu a tendina molto comodo:
 view layout [
  text  "Cosa preferisci?"
  choice "Pasta" "dolci" [ alert reform ["Hai scelto" value] ]
  ]

L'elemento '''choice''' ha diverse variabile, '''value''' nella sua azione rappresenta il testo scelto. '''text''' rappresenta il testo che appare, ecco un altro esempio:
 view layout [
 prova: choice "a" "b"
 button "scelta" [ print prova/text]
 button "modifica" [ prova/text: "c"  show prova]
 ]
October 27, 2011, at 02:48 PM by Massimiliano Vessi -
Changed lines 580-581 from:
Cambia un valore alla posizione dell'indice della serie:
to:
Cambia un valore alla posizione dell'indice della serie e ritorna la serie dopo la modifica:
 >> a: [ "a" "b" "c" "d" "e" "f"]
 >> change a "c"
 == ["b" "c" "d" "e" "f"]
 >> a
 == ["c" "b" "c" "d" "e" "f"]
October 27, 2011, at 02:25 PM by Massimiliano Vessi -
Deleted lines 578-580:

!!!ALTER
!!!ARRAY
Added lines 580-584:
Cambia un valore alla posizione dell'indice della serie:


!!!ARRAY

October 27, 2011, at 02:22 PM by Massimiliano Vessi -
Changed lines 518-519 from:

to:
!!!ALTER
Cerca e rimuove un elemento nella serie, se non lo trova, lo aggiunge alla fine. Quando rimuove riotnra  ''false'', quando lo aggiunge ritorna ''true'':
 >> a:  ["a" "b" "c" "d" "e" "f"]
 >> alter a "c"
 == false
 >> a
 == ["a" "b" "d" "e" "f"]
 >> alter a "c"
 == true
 >> a
 == ["a" "b" "d" "e" "f" "c"]


Changed lines 577-579 from:
to:
!!Modificare una serie

Deleted line 581:
!!!AT
Deleted line 590:
!!!SELECT
October 27, 2011, at 02:19 PM by Massimiliano Vessi -
Added lines 560-566:
!!!SELECT
Cerca e vi restituisce l'elemento dopo quello indicato:
 >> a: [ "a" "b" "c" "d" "e" "f"]
 >> select a "c"
 == "d"

Deleted line 577:
October 27, 2011, at 02:16 PM by Massimiliano Vessi -
Added lines 488-498:
!!!REPEND
Aggiunge valori o blocchi alla fine di una serie, ma li valuta prima:
 >> a: 1
 >> b: 2
 >> c: [ a b]
 >>d: copy []
 >> append d c
 == [ a b]
 >> repend d c
 == [a b 1 2]

Changed line 571 from:
!!!REPEND
to:
October 27, 2011, at 02:13 PM by Massimiliano Vessi -
Changed lines 502-503 from:

to:
!!!REMOVE-EACH
E' una rimozione condizionale, rimuove gli elementi che verificano il blocco alal fine del comando:
 >> a: [1 9 2 8 3 7 4 6 5]
 >> remove-each elemento a [ elemento > 5]
 == [ 1 2 3 4 5]


Deleted lines 558-559:

!!!REMOVE-EACH
October 27, 2011, at 02:11 PM by Massimiliano Vessi -
October 27, 2011, at 02:04 PM by Massimiliano Vessi -
Added lines 495-505:
!!!REMOVE
Rimuove un elemento dalla testa della serie o fino posizione indicata:
 >> a:  ["a" "b" "c" "d"]
 >> remove a
 == ["b" "c" "d"]
 >>  remove/part a 2
 == ["d"]


!!Estrarre i dati
Per trovare quello che ci serve da una serie abbiamo molti comandi:
Changed lines 518-522 from:
to:
 >> a: [ "a" "b" "c" "d"]
 == ["a" "b" "c" "d"]
 >> find a "c"
 == ["c" "d"]

Deleted line 552:
!!!PICK
Changed line 554 from:
!!!REMOVE
to:
October 27, 2011, at 01:54 PM by Massimiliano Vessi -
Deleted lines 469-470:

Deleted lines 494-504:


!!!ALTER
!!!ARRAY
!!!AT
!!!BACK
!!!CHANGE

!!!COPY
!!!DIFFERENCE
!!!EXCLUDE
Added lines 496-500:
Estrae a intervalli regolari, ha molte opzioni:
 >> a: [ 1 2 3 4 5 6 7 8 9 0]
 == [1 2 3 4 5 6 7 8 9 0]
 >> extract a 2
 == [1 3 5 7 9]
Changed lines 502-508 from:
!!!FOUND?
!!!HEAD
!!!HEAD?
!!!INDEX?

!!!INTERSECT
!!!JOIN
to:
Cerca all'interno della serie e restituisce una serie, dall'elemento trovato in poi:
 >> a
 == [1 2 3 4 5 6 7 8 9 0]
 >> find a 3
 == [3 4 5 6 7 8 9 0]

Changed lines 509-510 from:
!!!LENGHT?
!!!OFFSET?
to:
Vi dice l'ultimo elemento della serie:
 >> a
 == [1 2 3 4 5 6 7 8 9 0]
 >> last a
 == 0

!!!PICK
Vi rende il valore alla posizione data:
 >> a: [ a b c d e f]
 == [a b c d e f]
 >> pick a 3
 == c

!!!AT
Ritorna la serie dalla posizione specificata in poi:
 >> a: [ a b c d e f]
 == [a b c d e f]
 >> at a 3
 == [c d e f]

!!!ALTER
!!!ARRAY
!!!AT
!!!CHANGE
!!!DIFFERENCE
!!!EXCLUDE
!!!INDEX?
!!!INTERSECT
!!!JOIN
October 27, 2011, at 01:43 PM by Massimiliano Vessi -
Changed lines 446-448 from:
I blocchi nascondo anche altre peculiarita', hanno tutti una testa (''head'') e una coda (''tail''), e un indice.
La testa e' sempre il primo elemento della serie, mentre la coda e' sempre l'ultimo.
L'indice, invece, e' una specie di segnalibro che ci dice da che punto in poi considerare la serie, e puo' essere spostato a piacere lungo tutta la serie
to:
!!Indice di una serie

I blocchi nascondo anche altre peculiarita', per tecniche di programmazione avanzate; hanno tutti una testa (''head'') e una coda (''tail''), e un indice.
La testa e' sempre il primo elemento della serie, mentre la coda e' sempre dopo l'ultimo elemento.
L'indice, invece, e' una specie di segnalibro che ci dice da che punto in poi considerare la serie, e puo' essere spostato a piacere lungo tutta la serie.

In un blocco appena creato l'indice punta sempre al primo elemento della serie.  Se sposto l'indice in avanti con il comando '''next''', la serie cambia:

 >> a: [ 1 2 3 4]
 >> a: next a
 == [ 2 3 4]

pero' non ho perso i dati, ho solo spostato l'indice in avanti, posso sempre riportarlo indietro di un passo con '''back''', oppure all'inzio della serie con '''head''':
 >> a: [ 1 2 3 4]
 >> a: next a
 == [ 2 3 4]
 >> a: next a
 == [ 3 4]
 >> a: back a
 == [ 2 3 4]
 >> a: head a
 == [ 1 2 3 4]


October 27, 2011, at 01:35 PM by Massimiliano Vessi -
Changed lines 403-404 from:
per creare una nuova serie vuota usate i comando '''copy''':
to:
per creare una nuova serie vuota usate i comando '''copy''', se non lo fate rischiate di associare la variabile ad un blocco vuoto già esistente:
Added lines 440-448:

Se volete sapere quanto e' lunga una serie, basta chiederlo con il comando '''length?'''
 >> a: [ 1 2 3 4 5 6 7 20]
 >> length? a
 == 8

I blocchi nascondo anche altre peculiarita', hanno tutti una testa (''head'') e una coda (''tail''), e un indice.
La testa e' sempre il primo elemento della serie, mentre la coda e' sempre l'ultimo.
L'indice, invece, e' una specie di segnalibro che ci dice da che punto in poi considerare la serie, e puo' essere spostato a piacere lungo tutta la serie
October 27, 2011, at 01:28 PM by Massimiliano Vessi -
Changed lines 451-457 from:
 >> ["Buon" "anno!"]

!!!ALTER
!!!ARRAY
!!!AT
!!!BACK
!!!CHANGE
to:
 == ["Buon" "anno!"]

!!!INSERT
Con '''insert''' si inserisce in testa:
 >> a: [1 2 3 ]
 >> insert a 10
 == [10 1 2 3]

!!Rimuovere
Ecco alcuni comandi per rimuovere i dati da un blocco.
Added lines 462-473:
Rimuove tutti i dati dall'indice corrente fino alla fine della serie.
 >> a: [1 2 3 ]
 >> clear a
 == []


!!!ALTER
!!!ARRAY
!!!AT
!!!BACK
!!!CHANGE

Changed line 483 from:
!!!INSERT
to:
October 26, 2011, at 06:28 PM by Massimiliano Vessi -
Added lines 113-121:


!Chiedere aiuto
Prima di tutto, qualunque cosa succeda, se usate il terminale  di Rebol e non sapete un comando, usate il punto interrogativo:
 >> ?
oppure
 >> ? insert

e vi apparira' un aiuto o una spiegazione.
October 26, 2011, at 06:23 PM by Massimiliano Vessi -
Added lines 444-478:
!!!ALTER
!!!ARRAY
!!!AT
!!!BACK
!!!CHANGE
!!!CLEAR
!!!COPY
!!!DIFFERENCE
!!!EXCLUDE
!!!EXTRACT
!!!FIND
!!!FOUND?
!!!HEAD
!!!HEAD?
!!!INDEX?
!!!INSERT
!!!INTERSECT
!!!JOIN
!!!LAST
!!!LENGHT?
!!!OFFSET?
!!!PICK
!!!POKE
!!!REMOVE
!!!REMOVE-EACH
!!!REPLACE
!!!REPEND
!!!REVERSE
!!!SELECT
!!!SKIP
!!!SORT
!!!TAIL
!!!TAIL?
!!!UNION
!!!UNIQUE
October 26, 2011, at 06:16 PM by Massimiliano Vessi -
Added lines 1135-1174:

!!!Creiamo una tabella

Se vogliamo creare una tabella, basta indicare il nome delle colonne:
 SQL> create table esempio [ prima seconda terza]
 true
 SQL>

 vediamo come e' fatta:
 SQL> desc esempio
 Column  Type
 ------- ----
 prima  none
 seconda none
 terza  none
 3 row(s) selected in 0:00 seconds

adesso le colonne hanno come tipo ''none'', ma prenderanno il primo tipo inserito

!!!Inserire i dati
Ecco come fare:
 SQL> INSERT INTO esempio VALUES [ 1 $5 "Max" ]
 prima seconda terza
 ----- ------- -----
    1  $5.00 Max
 1 row(s) selected in 0:00 seconds
  SQL>

adesso le colonne possono descriverci cosa contengono:
 SQL> desc esempio
 Column  Type
 ------- -------
 prima  integer
 seconda money
 terza  string
 
 3 row(s) selected in 0:00 seconds


October 26, 2011, at 06:07 PM by Massimiliano Vessi -
Added lines 1085-1134:

Una volta scompattata il file zip, troverete i seguenti file:
*db.r
*db-client.r
*SQL.r

Non sto a descrivere i primi due, ma basta lanciare il terzo per trovarsi in una sessione di un database SQL!!!
 >> do %SQL.r
 SQL>

I comandi sono tantissimi, basta lanciare HELP per rendersene conto:

 SQL> help
 +-----------------------------------------------------------------------------+
 | Row Retrieval                                                              |
 +-----------------------------------------------------------------------------+
 | LOOKUP table {key [keys]}                                                  |
 | SELECT {* column [{rowid} columns]} FROM table                              |
 |    WHERE {key [keys] [conditions]}                                        |
 |    GROUP BY {column [columns]} (HAVING [conditions]}                      |
 |    ORDER BY {column [columns]} {DESC}                                      |
 +-----------------------------------------------------------------------------+
 | Row Management                                                              |
 +-----------------------------------------------------------------------------+
 | DELETE FROM table {key [keys]}                                              |
 |    WHERE {key [keys] [conditions]}                                        |
 | INSERT INTO table VALUES [{next} values]                                    |
 | TRUNCATE table                                                              |
 | UPDATE table SET {column [columns]} TO {value [values]} {key [keys]}        |
 |    WHERE {key [keys] [conditions]}                                        |
 +--------------------------------------+--------------------------------------+
 | Table Management                    | Informational                        |
 +--------------------------------------+--------------------------------------+
 | CLOSE {table *}                      | {DESC DESCRIBE} table                |
 | COMMIT {table *}                    | EXPLAIN statement                    |
 | CREATE table [columns]              | ROWS table                          |
 | DROP table                          | SHOW                                |
 | ROLLBACK {table *}                  | TABLE? table                        |
 |                                      | TABLES                              |
 +--------------------------------------+--------------------------------------+
 | Commands                            | Settings                            |
 +--------------------------------------+--------------------------------------+
 | ; {comment}                          | SET ADDRESS url                      |
 | ECHO {text "text"}                  | SET HTML {on off}                    |
 | EXIT                                | SET LINES {on off}                  |
 | HELP                                | SET PATH path                        |
 | RUN {script script.sql}              | SET SPOOL {file off}                |
 |                                      | SET USERNAME string                  |
 +--------------------------------------+--------------------------------------+
 SQL>
October 26, 2011, at 06:00 PM by Massimiliano Vessi -
Changed line 1084 from:
Prima di tutto potete scaricarlo da qui: attach:RebDB.zip  oppure dal sito ufficiale: http://www.dobeash.com/rebdb.html
to:
Prima di tutto potete scaricarlo da qui: Attach:RebDB.zip  oppure dal sito ufficiale: http://www.dobeash.com/rebdb.html
October 26, 2011, at 05:59 PM by Massimiliano Vessi -
Changed lines 1046-1047 from:
Inoltre in rete esistono varie librerie gratuite per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.
to:
Inoltre in rete esistono varie librerie gratuite per dialogare con i piu' famosi database del mondo, guardate qui per esempio:
*http://softinnov.org/rebol/mysql.shtml
*http://softinnov.org/rebol/pgsql.shtml
*http://softinnov.org/rebol/ldap.shtml

Se
comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.
Added lines 1082-1084:
!!RebDB
Esiste anche un'altra possibilità, utilizzare lo script RebDB che ci permette di utilizzare la sintassi SQL per avere a propria disposizione un database professionale, senza dover installare alcun che'; funziona tutto attraverso e solo con Rebol.
Prima di tutto potete scaricarlo da qui: attach:RebDB.zip  oppure dal sito ufficiale: http://www.dobeash.com/rebdb.html
October 26, 2011, at 04:40 PM by Massimiliano Vessi -
Added lines 39-44:

!!Versioni a pagamento
Tutto quello mostrato in questa guida si può fare con la versione gratuita, che fondamentalmente copre ogni aspetto della programmazione, comunque esistono anche delle versioni a pagamento per programmatori più esigenti:

*la versione professionale a pagamento che aggiunge alcune funzioni che potete leggere in questo link: http://www.rebol.com/command.html
*l'ambiente di sviluppo per programmatori professionali si può acquistare qui: http://www.rebol.com/sdk.html
October 26, 2011, at 04:33 PM by Massimiliano Vessi -
Changed lines 1038-1040 from:
In Rebol esistono varie librerie per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.
to:
La versione a pagamento di Rebol ha accesso alla maggior parte dei databse professionali (MySQL, Oracle, SQLServer, Access, Excel), per maggiori informazioni: http://www.rebol.com/command.html

Inoltre in rete esistono varie librerie gratuite
per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.
October 24, 2011, at 04:05 PM by Massimiliano Vessi -
Changed lines 21-22 from:
'''Adesso sono disponibili anche le lezioni video: [[RebolVideoGuida ]] '''
to:
'''Adesso sono disponibili anche le lezioni video qui: http://www.youtube.com/playlist?list=PL145514E3A0BC9C6B
oppure qui:
[[RebolVideoGuida ]] '''
October 24, 2011, at 04:03 PM by Massimiliano Vessi -
Added lines 328-374:

se volete aspettare che il programma finisca, usate l'opzione '''/wait''':
 >> call/wait "ls -l"

!!Eseguire script esterni

Per eseguire altri script basta usare il comando '''do''':
 do %prova.r

se volete avere informazioni sullo script, caricatelo col comando '''load/header''', per sempio se abbiamo un script così:
 Rebol [
 title: "Esempio"
 version:117
 ]
 print "hello world"

possiamo ricavare tutte le informazioni che vogliamo così (probe viene lanciato solo a scopo illustrativo):

 >> a: load/header %prova.r
 >> probe a
 == [make object! [
        Title: "Esempio"
        Date: none
        Name: none
        Version: 117
        File: none
        Home: none
        Author: none
        Owner: none
        Rights: none
        Needs: none
        Tabs: none
        Usage: none
        Purpose: none
        Comment: none
        History: none
        Language: none
        Type: none
        Content: none
    ] print "hello world"
 ]
 >> a/1/version
 == 117
 >> a/1/Title
 == "Esempio"

October 24, 2011, at 03:55 PM by Massimiliano Vessi -
Added line 105:
*'''Rebolide''': http://www.rebol.org/view-script.r?script=rebolide.r
October 24, 2011, at 03:52 PM by Massimiliano Vessi -
Added lines 1880-1897:
!VID Extension Kit
Un altro progetto che cerca di migliorare ulteriormente le interfacce con VID e' il '''VID Extension Kit''' che potete scaricare da qui:
http://hmkdesign.dk/project.rsp?id=vid-ext-kit&page=info

oppure lo potete scaricare da qui:
Attach:vid_extension_kit.zip

I comandi sono gli stessi di VID a parte che si usa '''make-window'''  invece di ''layout'', ecco un esempio:
 Rebol[]
 do %vid-ext-kit.r
 view make-window [
    across
    h3 "Main Window" return
    bar return
    label "Enter Name"
    field return
    ok-cancel
 ]
August 26, 2011, at 10:01 AM by Massimiliano Vessi -
Added lines 1471-1483:
Un elemento puo' essere nascosto fin dall'inizio imponendogli il settaggio di '''show?''' su falso:

 view layout [
    a: button "a" [ hide b show c ]
    b: button "b" [hide c show  a]
    c: button "c" [hide a show  b] with [show?: false]
    ]

Un elemento non può nascondere se stesso con '''hide''', ma tale limitazione può essere superata con gli eventi (v. piu' avanti), ecco un esempio:
  view layout [
    button "Cliccami per nascondermi!" 120
    feel [engage: func [f a e][hide f ]]
]
July 28, 2011, at 04:37 PM by Massimiliano Vessi -
Added line 1545:
Added lines 1550-1551:

Si possono anche associare pulsanti ad azioni, senza doverle associare a particolari elementi della finestra; per fare cio' leggete piu' avanti nella sezione '''Eventi (avanzato)'''
July 28, 2011, at 03:52 PM by Massimiliano Vessi -
Added lines 1550-1553:
!!Scorciatoie da tastiera
E' possibile aggiungere delle scorciatoie da tastiera, per esempio premere la lettera '''a''' se invece di premere un pulsante. Per fare ciò basta aggiungere la lettera ad un oggetto. Provate a premere e con l'esempio sottostante:
 view layout [ button "esEmpio" #"e" [
    alert "hai premuto e"]]
July 28, 2011, at 03:47 PM by Massimiliano Vessi -
Added lines 1542-1549:

!!Pulsante destro del mouse
Ogni elemento può attivare un'azione diversa se si clicca col pulsante sinistro o destro del mouse. Se si vuole assegnare un'azione al pulsante destro del mouse, basta aggiungere un'altra azione all'oggetto, esempio:
 view layout [ button "Esempio" [
  alert "cliccato col pulsante sinistro" ][
  alert "cliccato col pulsante destro" ]
  ]

July 14, 2011, at 12:48 PM by Massimiliano Vessi -
Added lines 449-469:

!!Foreach
Il comando '''foreach''' risulta utilissimo quando si lavora con le serie, permette di attraversare la serie e sfruttarla; esempio:
 a: ["Gino" "Paola" "Mario"]
 foreach item a [ print ["a contiene" item]]
 ==
 a contiene Gino
 a contiene Paola
 a contiene Mario

Inoltre il comando '''foreach''', permette di utilizzare gruppi di identificativi, vediamo quest'altro esempio:
 a: ["Gino" $4 "Paola" $5 "Mario" $10.5]
 foreach [nome soldi] a [
    print [nome " ha nel portafoglio " soldi ]
    ]
 ==
 Gino  ha nel portafoglio  $4.00
 Paola  ha nel portafoglio  $5.00
 Mario  ha nel portafoglio  $10.50

June 17, 2011, at 05:45 PM by Massimiliano Vessi -
Added lines 2356-2374:
* scaricarlo da http://www.rebol.com/plugin/rebol-operab2.zip
*scompattare i files e copiarli nella directory dei plugin del browser; ad esempio per Firefox e' C:/Program Files/Mozilla Firefox/plugins/
* riavviare il browser

Potete provare il seguente link, se appare un quadrato colorato, funziona: http://www.rebol.com/plugin/web-plugin-install.html
!! Come scrivere una pagina web per il plugin?
E' moolto facile scrivere una pagina web per il plugin, basta incorporare pochissime righe tipo:
 <embed  type="application/x-rebol-plugin-v1"
    WIDTH="200" HEIGHT="40" BORDER="1"
    LaunchURL="http://www.rebol.net/plugin/demos/ready.r" >
 </embed>

Semplicissimo, basta impostare:
* l'altezza e la larghezza corretta della finestra del plugin (WIDTH e HEIGHT)
* il tipo di plugin (application/x-rebol-plugin-v1)
* il link dello script rebol (LAUNCHURL)

Altri esempi li trovate qui:
http://www.maxvessi.net/rebsite/plugin/index.html
June 14, 2011, at 02:46 PM by Massimiliano Vessi -
Changed lines 158-159 from:
*^(letter) inserisce un alettera di controllo (A-Z).
*^(xx) inserisce un carattere ACII, dove ''xx'' sta per il valore esadecimale
to:
*^(letter) inserisce una lettera di controllo (A-Z).
*^(xx) inserisce un carattere ASCII, dove ''xx'' sta per il valore esadecimale
June 14, 2011, at 02:44 PM by Massimiliano Vessi -
Changed lines 16-17 from:
Attach:RebolIOS.jpg
to:
%lfloat%Attach:RebolIOS.jpg
Deleted lines 28-32:
Ho preparato dei pacchetti autoinstallanti per Linux, per tutti i formati piu' popolari: '''DEB''', '''RPM''' e '''TGZ''' (Ubuntu/Debian, Mandriva, Fedora, Red Hat, Suse, Slackware, ecc.). Si possono scaricare da questo indirizzo:

http://www.maxvessi.net/rebsite/Linux/  %height=40px%Attach:tux.jpg Attach:deb.jpg Attach:rpm.jpg Attach:tgz.jpg%%

Added lines 79-82:

Ho preparato dei pacchetti autoinstallanti per Linux, per tutti i formati piu' popolari: '''DEB''', '''RPM''' e '''TGZ''' (Ubuntu/Debian, Mandriva, Fedora, Red Hat, Suse, Slackware, ecc.). Si possono scaricare da questo indirizzo:

http://www.maxvessi.net/rebsite/Linux/  %height=40px%Attach:tux.jpg Attach:deb.jpg Attach:rpm.jpg Attach:tgz.jpg%%
June 14, 2011, at 02:16 PM by Massimiliano Vessi -
Changed lines 44-46 from:
!!!Ecco una demo:

to:
!!Ecco una demo:

Changed lines 49-50 from:
!!!Utilizzatori nel mondo:
to:
!!Utilizzatori nel mondo:
Added line 57:
June 14, 2011, at 02:15 PM by Massimiliano Vessi -
Changed lines 56-59 from:



!Vantaggi
to:
!!Vantaggi
June 14, 2011, at 02:14 PM by Massimiliano Vessi -
Added lines 7-15:



!!Indice Guida
(:toc:)

!Introduzione

Deleted lines 67-70:


!Indice Guida
(:toc:)
June 14, 2011, at 02:11 PM by Massimiliano Vessi -
Changed lines 25-33 from:
Se volete piu' informazioni esiste:

>>frame width=136px<<
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | '''REBOL italiano'''
[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
>><<


Ed
esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]] %height=40px%Attach:england.gif%%
to:
Se volete piu' informazioni esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]] %height=40px%Attach:england.gif%%
June 14, 2011, at 02:09 PM by Massimiliano Vessi -
Added lines 7-8:
Attach:RebolIOS.jpg
Changed lines 50-53 from:
%width=425px% http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg


to:
(:html:)
<a href="http:
//www4.clustrmaps.com/counter/maps.php?url=http://www.rebol.com" id="clustrMapsLink"><img src="http://www4.clustrmaps.com/counter/index2.php?url=http://www.rebol.com" style="border:0px;" alt="Locations of visitors to this page" title="Locations of visitors to this page" id="clustrMapsImg" onError="this.onError=null; this.src='http://www2.clustrmaps.com/images/clustrmaps-back-soon.jpg'; document.getElementById('clustrMapsLink').href='http://www2.clustrmaps.com'" /></a>
(:htmlend:)




Changed line 67 from:
Attach:RebolIOS.jpg
to:
June 01, 2011, at 01:08 PM by Massimiliano Vessi -
Added lines 2353-2355:

!Rebol plugin
Esiste il plugin per i browser tipo Firefox, Opera e Internet Explorer. Per ora funziona solo su windows. Per installarlo basta:
May 30, 2011, at 05:07 PM by Massimiliano Vessi -
Changed lines 332-333 from:
to:
 >> prova: [a b c]
 == [a b c]
Changed lines 336-338 from:

per creare una nuova serie usate i comando '''copy''']
to:
 


per
creare una nuova serie vuota usate i comando '''copy''':
Added lines 342-368:

per copiare una serie usate sempre copy:
 >> prova: [a b c]
 == [a b c]
 >> prova2: copy prova
 == [a b c]

Per prendere un elemento di un blocco basta indicare la posizione:
 >> prova/1
 == a
 >> prova/3
 == c

Se il blocco e composto da altri blocchi, potete comunque arrivare al dato richiesto:
 >> prova: [ Marco [$1 10.5] Mario [$3 20.1]]
 == [ Marco [$1 10.5] Mario [$3 20.1]]
 >> prova/2/1
 == $1
 >> prova/4/2
 == 20.1

Se il vi servite di molte variabili per arrivare ad una posizione, dovete utilizzare i due punti cosi':
 >> prova: [ Marco [$1 10.5] Mario [$3 20.1]]
 >> a: 2
 >> b: 1
 >> prova/:a/:b
 == $1
April 21, 2011, at 03:47 PM by Massimiliano Vessi -
Added lines 2268-2274:

!!VLINE
Disegna una linea verticale dalla posizione corrente:
||border=1
||!Descrizione ||!Tipo ||
||lunghezza ||decimale ||

Added lines 2276-2281:
 view layout [ box 300x300 effect [
  draw [ shape [
  move 100x100
  vline  50
  ]]]]

April 21, 2011, at 03:44 PM by Massimiliano Vessi -
Added lines 2254-2268:

!!QCURV
Disegna una curva di Bezier fino al punto indicato:
||border=1
||!Descrizione ||!Tipo ||
||punto1 ||coppia ||

 view layout [ box 300x300 effect [
  draw [ shape [
        move 0x150
qcurve 100x250 200x150
qcurv 400x150
move 0x0
  ]]]]
 
April 21, 2011, at 03:42 PM by Massimiliano Vessi -
Added lines 2206-2254:

!!HLINE
Disegna un linea orizzontale dal punto corrente:
||border=1
||!Descrizione ||!Tipo ||
||lunghezza ||decimale ||

 
 view layout [ box 300x300 effect [
  draw [ shape [
  move 100x100
  hline  50
  ]]]]


!!LINE
Disegna una spezzata:
||border=1
||!Descrizione ||!Tipo ||
||punto1 ||coppia ||
||punto2 ||coppia ||
||punto3 ||coppia ||
|| ... ||coppia ||

 
 view layout [ box 300x300 effect [
  draw [ shape [
  move 100x100
  line  50x50 20x220 120x42
  ]]]]

!!MOVE
Imposta il nuovo punto di partenza per una nuova forma, senza disegnare nulla. Può essere utilizzato per non chiudere le forme:
||border=1
||!Descrizione ||!Tipo ||
||punto1 ||coppia ||

 view layout [ box 300x300 effect [
  draw [ shape [
  move 20x20
  line  20x100 100x100 120x20
  ]
  pen red
  shape [
  move 25x25
  line  25x105 105x105 125x25
  move 0x0 
  ]]]]

April 21, 2011, at 03:26 PM by Massimiliano Vessi -
Changed lines 2165-2167 from:
!!Curve
Disegna una curva morbida. Servono almeno 3 punti.
to:
!!CURV
Disegna una curva morbida. Servono almeno 2 punti.
Deleted line 2171:
||punto3 ||coppia ||
Added line 2174:
||punto1 ||coppia ||
Changed lines 2181-2184 from:
   curve 2x2 100x300 300x100 
to:
   move 100x50
  vline 150
  curv 300x150 300x50
  move 0x0
 
Added lines 2187-2205:
!!CURVE
Disegna una cirva cubica di Beizer, servono almeno 3 punti:

||border=1
||!Descrizione ||!Tipo ||
||punto1 ||coppia ||
||punto2 ||coppia ||
||punto3 ||coppia ||
||punto1 ||coppia ||
||punto2 ||coppia ||
|| ... ||coppia ||


 view layout [ box 300x300 effect [
  draw [ shape [
  move 100x50
  curve 100x150 300x150 300x50
  move 0x0
  ]]]]
April 14, 2011, at 06:06 PM by Massimiliano Vessi -
Changed line 2133 from:
Disegna una curva ellittica dall'ultimo punto al punto indicato.
to:
Disegna una curva ellittica dall'ultimo punto al punto indicato. LARGE va impostato per archi maggiori di 180 gradi.
Added lines 2142-2182:

Esempio

 view layout [box 400x400 effect [
  draw [
    pen yellow line-width 4
  shape [
    move 100x200
    arc  75 200x200 false false
    ]
  pen red shape [
    move 100x205
    arc 75 200x205 true false
    ]
  pen green line-width 4 shape [
    move 150x200
    arc  75 200x200 false true
    ]
  pen blue shape [
    move 150x205
    arc 75 200x205 true true
  ]]]]

!!Curve
Disegna una curva morbida. Servono almeno 3 punti.

||border=1
||!Descrizione ||!Tipo ||
||punto1 ||coppia ||
||punto2 ||coppia ||
||punto3 ||coppia ||
||punto1 ||coppia ||
||punto2 ||coppia ||
|| ... ||coppia ||

Esempio

 view layout [ box 300x300 effect [
  draw [ shape [
  curve 2x2 100x300 300x100 
  ]]]]
April 14, 2011, at 05:28 PM by Massimiliano Vessi -
Changed lines 2104-2105 from:
'''SHAPE''' e' un altro dialetto che permette di disegnare, ma utilizzando posizioni relative, non assolute. Grazie a SHAPE e' possibile avere dei disegni compatibili con i disegni vettoriali SVG (v. http://www.w3.org/TR/SVG11/paths.html )
to:
'''SHAPE''' e' un altro dialetto che permette di disegnare forme del tutto arbitrarie, utilizzando posizioni relative o assolute. Grazie a SHAPE e' possibile avere dei disegni compatibili con i disegni vettoriali SVG (v. http://www.w3.org/TR/SVG11/paths.html )
Added lines 2120-2142:

Adesso sara' elencata una lista dei comandi.

!!Posizioni relative e assolute
Quando un comando e' preceduto dall'apostrofo, vuol dire che le coordinate sono da intendersi relative. Quando un comando non e' preceduto dall'apostrofo e' da intendersi che le coordinate sono assolute. Esempio:
 view layout [box 120x30 effect [
  draw [
  shape [ move 10x10 'line 100x0 ]
  pen red
  shape [ move 10x20  line 100x0 ]
  ]]

!!ARC
Disegna una curva ellittica dall'ultimo punto al punto indicato.
||border=1
||!Descrizione ||!Tipo ||
||punto arrivo ||coppia ||
||raggio x ||intero ||
||raggio y ||intero ||
||angolo ||decimale ||
||sweep ||logico ||
||largo || logico ||

April 05, 2011, at 06:10 PM by Massimiliano Vessi -
Changed line 2103 from:
!!Grafica 2D (SHAPE)
to:
!Grafica 2D (SHAPE)
April 05, 2011, at 06:07 PM by Massimiliano Vessi -
Added lines 2102-2119:

!!Grafica 2D (SHAPE)
'''SHAPE''' e' un altro dialetto che permette di disegnare, ma utilizzando posizioni relative, non assolute. Grazie a SHAPE e' possibile avere dei disegni compatibili con i disegni vettoriali SVG (v. http://www.w3.org/TR/SVG11/paths.html )

Ogni volta che disegnamo una figura con SHAPE, se non specificato diversamente, Rebol la chiudera'.
SHAPE si usa dentro DRAW, ecco un esempio ingombrante:

 view layout [
  box 300x400 effect [ draw [
    pen yellow line-width 4 fill-pen red
    shape [
        move 100x175
        arc  75 200x175 false true
        line 100x175
        move 100x200
        arc 100 200x200 true true
        line 100x200
        ]]]]
April 03, 2011, at 12:06 AM by 151.95.0.200 -
Added lines 1665-1712:

Si possono intercettare anche i pulsanti premuti, ma deve avere il focus l'elemento che ha il comando di intercettare i pulsanti, esempio:
 view/new layout [
    the-box: box "A Box" forest feel [
        engage: func [face action event] [
            print [action event/key]
        ]
    ]
 ]
 focus the-box
 do-events

Come vedete sono intercettati tutti i pulsanti della tastiera, del mouse e perfino la rotellina del mouse. Se volete sapere se un pulsante viene premuto insieme al tasto CONTROL o SHIFT, basta controllare lo se e' TRUE lo stato dei seguenti:

 if event/control [...] ; controlla CONTROL
 if event/shift [...] ;controlla SHIFT
 if event/control/shift [...] ;controlla sia CONTROL che SHIFT

E adesso parliamo di un altro evento importantissimo, i timers. E' possibile chiedere ad un elemento di ripetere un'azione un certo numero di volte al secondo oppure ogni X secondi/minuti/ore.
Esempio:

 view layout [
    box "A Box" forest rate 1 feel [
        engage: func [face action event] [
            print action
        ]
    ]
 ]

Apparira' una volta al secondo l'evento 'timer'. Ma se avessimo scritto
 rate 10
sarebbe apparso 10 volte al secondo
 rate 0:00:10
sarebbe apparso ogni 10 secondi

E ora mostriamo la semplicita' del tutto, ecco a voi un orologio digitale fatto con 5 righe di codice:
 view layout [
    origin 0
    banner "00:00:00" rate 1 feel [
        engage: func [face act evt] [
            face/text: now/time
            show face
        ]
    ]
 ]

Si puo' bloccare l'iterazione continua di un timer impostando:
 face/rate: none
April 02, 2011, at 11:49 PM by 151.95.0.200 -
Added lines 1618-1667:


!!!Engage
Comando molto importante, permette di intercettare la pressione di un tasto del mouse, la posizione del mouse, timers e tante altre cose. Prima di spiegare oltre e' meglio fare un esempio di base, che anche se non molto utile apparentemente, chiarirà meglio gli esempi successivi:
 view layout [
    box "A Box" forest feel [
        engage: func [face action event] [
            print action
        ]
    ]
 ]

L'esempio appena descritto vi dice quando viene premuto o  rilasciato il pulsante sinistro ('up' o 'down') o destro ('alt-up' o 'alt-down') del mouse. Oppure vi dirà se tenendo premuto il mouse e' sopra o no sull'elemento ('over' oppure 'away').
Anche se apparentemente non sembra molto, guardate come puo' essere sfruttato nel prossimo esempio per fare un elemento trascinabile:

 view layout [
    size 200x200
    box 40x40 coal "Trascinami!" font-size 11 feel [
        engage: func [face action event] [
            if action = 'down [start: event/offset]
            if find [over away] action [
                face/offset: face/offset + event/offset - start
                show face
            ]
        ]
    ]
 ]

La cosa bella di Rebol e' che facendo uno stile, non c'e' bisogno di ripetere gli comandi per tutti gli elementi, guardate qua:

 view layout [
 vtext "Trascinale tutte!"
    size 240x240
    style dragbox box 40x40 font-size 11 feel [
        engage: func [face action event] [
            if action = 'down [face/data: event/offset]
            if find [over away] action [
                face/offset: face/offset + event/offset - face/data
                show face
            ]
        ]
    ]
    dragbox "Box 1" navy
    dragbox "Box 2" teal
    dragbox "Box 3" maroon
    dragbox "Box 4" gold
 ]


March 29, 2011, at 03:54 PM by Massimiliano Vessi -
Changed lines 14-15 from:
'''Si scarica da qui:'''
to:
'''Tutte le versioni si scaricano da qui:'''
Changed line 18 from:
Oppure potete scaricare il pacchetto '''DEB''' per '''Ubuntu/Debian''', il paccheto Linux in formato '''RPM''' (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato '''TGZ''' da questo indirizzo:
to:
Ho preparato dei pacchetti autoinstallanti per Linux, per tutti i formati piu' popolari: '''DEB''', '''RPM''' e '''TGZ''' (Ubuntu/Debian, Mandriva, Fedora, Red Hat, Suse, Slackware, ecc.). Si possono scaricare da questo indirizzo:
March 29, 2011, at 03:51 PM by Massimiliano Vessi -
Added lines 1609-1617:

E' anche possibile sapere costantemente dove si trova il mouse, e non solo quando entra/esce o viene cliccato, ma e' cattiva programmazione farlo:

 out: layout [
    box "A Box" forest feel [
        over: func [face act pos] [print [act pos]]
    ]
 ]
 view/options out [all-over]
March 29, 2011, at 03:48 PM by Massimiliano Vessi -
Added lines 1597-1608:

Vediamo un altro esempio molto simpatico (muovete il mouse sopra):

 view layout [
    box "A Box" forest feel [
        over: func [face act pos] [
            face/text: either act ["Over"]["Away"]
            face/color: either act [brick][forest]
            show face
        ]
    ]
 ]
March 29, 2011, at 03:45 PM by Massimiliano Vessi -
Added line 1578:
         print act
Added lines 1588-1595:

!!!Over
Evento molto importante, permette di sapere se il mouse e' sull'elemento, dove si trova il mouse quando viene cliccato. Un esempio chiarisce ogni dubbio:
 view layout [
    box "A Box" forest feel [
        over: func [face act pos] [print [act pos]]
    ]
 ]
March 29, 2011, at 03:42 PM by Massimiliano Vessi -
Changed lines 1556-1557 from:
'''feel''' ha le seguenti funzioni utilizzabili:
to:

'''feel''' ha le seguenti eventi utilizzabili:
Changed lines 1563-1586 from:
to:
Ogni volta che avviene un evento ad un elemento con feel, esso si attiva. Si attiva se passa sopra il mouse, se viene cliccato l'elemento e cosi' via. Bisogna capire che non c'e' differenza fra un pulsante o un'immagine, per il PC sono la stessa cosa, mentre per noi sembrano differenti.

Ogni volta che dobbiamo usare ''feel'', va come questo esempio:
 view layout [ a: box feel [
    redraw: func [face act pos][print pos]
    ]]

Qui di seguito spiegheremo meglio.

!!!redraw
L'evento redraw  puo' essere utilizzata o per variare l'aspetto di un elemento o per attivare una funzione quando viene ridisegnata. Ma vediamolo meglio con un esempio:

 view layout [
    a: box green feel [
      redraw: func [face act pos][
          print pos
          ? pos
          ]
        ] 
    button "Nascondi" [hide a]
    button "Mostra" [show a]
    ]

Come si vede dall'esempio, la prima volta viene disegnato l'elemento e si attiva redraw, poi si attiva quando ci si clicca sopra. Se scompare non si attiva piu', e poi si riattiva quando appare.
March 29, 2011, at 03:16 PM by Massimiliano Vessi -
Changed lines 18-19 from:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''', il paccheto Linux in formato '''RPM''' (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato '''TGZ''' da questo indirizzo:
to:
Oppure potete scaricare il pacchetto '''DEB''' per '''Ubuntu/Debian''', il paccheto Linux in formato '''RPM''' (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato '''TGZ''' da questo indirizzo:
Added line 92:
Scaricare il pacchetto gia' pronto da: http://www.maxvessi.net/rebsite/Linux/  oppure:
March 29, 2011, at 02:21 PM by Massimiliano Vessi -
Changed lines 1551-1562 from:
Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.
to:
Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando. Potete utilizzare gif animate da sole, senza altre immagini.

!!Eventi (avanzato)
Certe colte ci serve sapere dove si trova il cursore, oppure quale stato sia stato premuto, oppure ripetere ciclicamente un comando. Per tutte queste cose ci viene in aiuto il comando '''feel'''.
'''feel''' ha le seguenti funzioni utilizzabili:
*redraw [face action position]
*over [face action position]
*engage [face action event]
*detect [face event]


March 25, 2011, at 05:43 PM by Massimiliano Vessi -
Deleted line 29:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]] %height=40px%Attach:italia.gif%%
March 25, 2011, at 05:42 PM by Massimiliano Vessi -
Added line 1230:
 text "Ciao"
Changed line 1232 from:
 text "Ciao"
to:
 text "Ciao ancora" font [ color: white shadow: 2x2]
March 25, 2011, at 05:36 PM by Massimiliano Vessi -
Changed lines 1239-1249 from:
||!Variabile||!Tipo||Descrizione||
|| name || string! || Nome del font, rebol ha già in memoria: font-serif, font-sans-serif , e font-fixed. Default e' font-sans-serif. ||
|| size || integer! || Grandezza del font ||
|| style || word! o block! || Stile del testo: bold, italic, underline o none. Si può usare anche un blocco con tutti insieme. ||
|| color || tuple! || Colore del testo, default e' 0.0.0 ||
|| align || word!  || Allineamento del testo. Le scelte sono: left, right, and center. ||
|| valign || word! ||  Allineamento verticale del testo, le scelte sono: top, bottom e middle. ||
|| offset || pair! || L'ooffest del testo dall'angolo in alto a sinistra. Default e' 2x2. ||
|| space || pair! ||  Spazio tra caratteri e righe di testo, default e' 0x0. ||
|| shadow || pair! || Ombreggiatura, quando deve essere spostata, default e' 0x0 ||
to:
||!Variabile||!Tipo||!Descrizione||
|| name || string! ||Nome del font, rebol ha già in memoria: font-serif, font-sans-serif , e font-fixed. Default e' font-sans-serif. ||
|| size || integer! ||Grandezza del font ||
|| style || word! o block! ||Stile del testo: bold, italic, underline o none. Si può usare anche un blocco con tutti insieme. ||
|| color || tuple! ||Colore del testo, default e' 0.0.0 ||
|| align || word!  ||Allineamento del testo. Le scelte sono: left, right, and center. ||
|| valign || word! ||Allineamento verticale del testo, le scelte sono: top, bottom e middle. ||
|| offset || pair! ||L'offest del testo dall'angolo in alto a sinistra. Default e' 2x2. ||
|| space || pair! ||Spazio tra caratteri e righe di testo, default e' 0x0. ||
|| shadow || pair! ||Ombreggiatura, quando deve essere spostata, default e' 0x0 ||
Changed lines 1252-1259 from:
||boder=1
||!Variabile||!Tipo||Descrizione||
|| origin || pair! || L'offset del testo dall'angolo in alto a sinistra. Default e' 2x2. ||
|| margin || pair! || Il margine estremo in basso a destra del testo. Default e' 2x2. ||
|| indent || pair! || Lo spaziamento della prima riga del paragrafo, si possono usare anche valori negativi. Default e' 0x0. ||
|| scroll || pair! || Utilizzato per lo scrolling, default e' 0x0. ||
|| tabs || integer! o block! || Si può impostare un intero per spazzi fissi o un blocco di interi per posizionare i vari tab.  Default is 40.||
|| wrap? || logic! || Indica se madare a capo automaticamente il testo.
to:
||border=1
||!Variabile||!Tipo||!Descrizione||
|| origin || pair! ||L'offset del testo dall'angolo in alto a sinistra. Default e' 2x2. ||
|| margin || pair! ||Il margine estremo in basso a destra del testo. Default e' 2x2. ||
|| indent || pair! ||Lo spaziamento della prima riga del paragrafo, si possono usare anche valori negativi. Default e' 0x0. ||
|| scroll || pair! ||Utilizzato per lo scrolling, default e' 0x0. ||
|| tabs || integer! o block! ||Si può impostare un intero per spazzi fissi o un blocco di interi per posizionare i vari tab.  Default is 40.||
|| wrap? || logic! ||Indica se madare a capo automaticamente il testo. ||
March 25, 2011, at 05:34 PM by Massimiliano Vessi -
Changed lines 1239-1241 from:
||! cell 1 ||! cell 2 ||! cell 3 ||
|| cell 1  ||  cell 2 ||  cell 3 ||
to:
||!Variabile||!Tipo||Descrizione||
|| name || string! || Nome del font, rebol ha già in memoria: font-serif, font-sans-serif , e font-fixed. Default e' font-sans-serif. ||
|| size || integer! || Grandezza del font ||
|| style || word! o block! || Stile del testo: bold, italic, underline o none. Si può usare anche un blocco con tutti insieme. ||
|| color || tuple! || Colore del testo, default e' 0.0.0 ||
|| align || word!  || Allineamento del testo. Le scelte sono: left, right, and center. ||
|| valign || word! ||  Allineamento verticale del testo, le scelte sono: top, bottom e middle. ||
|| offset || pair! || L'ooffest del testo dall'angolo in alto a sinistra. Default e' 2x2. ||
|| space || pair! || Spazio tra caratteri e righe di testo, default e' 0x0. ||
|| shadow || pair! || Ombreggiatura, quando deve essere spostata, default e' 0x0 ||
March 25, 2011, at 05:27 PM by Massimiliano Vessi -
Added lines 1224-1254:

!!Testi (avanzato)
Nel caso non vi bastassero gli stili, potete personalizzare i testi con ulteriori comandi.
Il comando '''font''' e il comando '''para'''. Ognuno di questi comandi ha delle variabili da poter impostare per modificare l'effetto, prima un esempio e poi una spiegazione dettagliata:

 view layout [
 text "Ciao a tutti" font [ size: 25]
 text "Ciao"
 ]

Spiegamo meglio i due comandi:

!!!Font
Font puo' impostare le seguenti variabili:
|| border=1
||! cell 1 ||! cell 2 ||! cell 3 ||
|| cell 1  ||  cell 2 ||  cell 3 ||


!!!Para
Para puo' impostare le seguenti variabili:
||boder=1
||!Variabile||!Tipo||Descrizione||
|| origin || pair! || L'offset del testo dall'angolo in alto a sinistra. Default e' 2x2. ||
|| margin || pair! || Il margine estremo in basso a destra del testo. Default e' 2x2. ||
|| indent || pair! || Lo spaziamento della prima riga del paragrafo, si possono usare anche valori negativi. Default e' 0x0. ||
|| scroll || pair! || Utilizzato per lo scrolling, default e' 0x0. ||
|| tabs || integer! o block! || Si può impostare un intero per spazzi fissi o un blocco di interi per posizionare i vari tab.  Default is 40.||
|| wrap? || logic! || Indica se madare a capo automaticamente il testo.

March 25, 2011, at 05:04 PM by Massimiliano Vessi -
Changed lines 1184-1186 from:
  text "bC"

to:
  text "bC"]

Added lines 1188-1196:

Se volete sistemare un elemento in una posizione particolare, potete utilizzare il comando '''at''' e la posizione:
 view layout [
    text "proviamo"
    at 3x3
    image logo.gif]

 

March 10, 2011, at 11:59 AM by 83.103.10.149 -
Changed lines 1841-1854 from:
con questo comando possiamo inserire il testo, mentre con il comando '''font''' possiamo scegliere il tipo di font utilizzare:
to:
'''ATTENZIONE:''' su Linux c'e' un piccolo bug, non trova il font giusto, prima di tutto aggiungete questo codice:

 switch system/version/4 [
  4 [ ;it's Linux
    my-font: make face/font [
name: "/usr/share/fonts/truetype/freefont/FreeSans.ttf"  ;replace with your path to font you prefe
size: 12
        ]
    ]
 ]

e usate '''my-font''' cone font per il testo, altrimenti non vedrete nessuna scritta e nessun disegno dopo il comando ''text''.

TEXT:
con questo comando possiamo inserire il testo, mentre con il comando '''font''' possiamo scegliere il tipo di font utilizzare:
December 07, 2010, at 02:22 PM by Massimiliano Vessi -
Changed lines 51-53 from:
!!!Gruppo Facebook

[[http://www.facebook.com/home.php#/group.php?gid=99459740077&ref=ts]]
to:
December 07, 2010, at 02:21 PM by Massimiliano Vessi -
Changed line 38 from:
Potete scaricare tantissimi esempi da: [[http://www.rebol.org/script-index.r]]
to:
Potete scaricare tantissimi esempi da: [[http://www.rebol.org/script-index.r]] %height=40px%Attach:rebol_org.png%%
December 07, 2010, at 02:15 PM by Massimiliano Vessi -
Changed line 36 from:
Il pagina Rebol World:  [[http://www.maxvessi.net/rebsite/wr/]] http://www.maxvessi.net/rebsite/wr/Earth.gif
to:
Il pagina '''Rebol World''' contenete tutti i siti dedicati a Rebol:  [[http://www.maxvessi.net/rebsite/wr/]] http://www.maxvessi.net/rebsite/wr/Earth.gif
December 07, 2010, at 02:14 PM by Massimiliano Vessi -
Changed lines 30-34 from:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]] Attach:italia.gif

Ed esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]] Attach:england.gif

E il gruppo '''Facebook''': %newwin%[[http://www.facebook.com/home.php#/group.php?gid=99459740077]] Attach:facebook.jpg
to:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]] %height=40px%Attach:italia.gif%%

Ed esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]] %height=40px%Attach:england.gif%%

E il gruppo '''Facebook''': %newwin%[[http://www.facebook.com/home.php#/group.php?gid=99459740077]] %height=40px%Attach:facebook.jpg%%
December 07, 2010, at 02:12 PM by Massimiliano Vessi -
Changed lines 30-32 from:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]]

Ed esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]
to:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]] Attach:italia.gif

Ed esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]] Attach:england.gif
December 07, 2010, at 02:11 PM by Massimiliano Vessi -
Changed lines 16-17 from:
%newwin%[[http://www.rebol.com/download-view.html]]%height=50px%Attach:logo-win32.gif Attach:tux.jpg Attach:logo-Mac.gif Attach:logo-obsd.gif%%
to:
%newwin%[[http://www.rebol.com/download-view.html]]%height=40px%Attach:logo-win32.gif Attach:tux.jpg Attach:logo-Mac.gif Attach:logo-obsd.gif%%
Changed line 20 from:
http://www.maxvessi.net/rebsite/Linux/  %height=50px%Attach:tux.jpg Attach:deb.jpg Attach:rpm.jpg Attach:tgz.jpg%%
to:
http://www.maxvessi.net/rebsite/Linux/  %height=40px%Attach:tux.jpg Attach:deb.jpg Attach:rpm.jpg Attach:tgz.jpg%%
December 07, 2010, at 02:10 PM by Massimiliano Vessi -
Changed lines 18-19 from:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''' %height=40px%Attach:deb.jpg%%, il paccheto Linux in formato '''RPM''' %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato '''TGZ''' %height=40px%Attach:tgz.jpg%% da questo indirizzo:
to:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''', il paccheto Linux in formato '''RPM''' (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato '''TGZ''' da questo indirizzo:
Changed line 30 from:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]]
to:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]] 
December 07, 2010, at 02:08 PM by Massimiliano Vessi -
Changed lines 16-17 from:
%newwin%[[http://www.rebol.com/download-view.html]] Attach:logo-win32.gif %height=50px%Attach:tux.jpg Attach:logo-Mac.gif Attach:logo-obsd.gif
to:
%newwin%[[http://www.rebol.com/download-view.html]]%height=50px%Attach:logo-win32.gif Attach:tux.jpg Attach:logo-Mac.gif Attach:logo-obsd.gif%%
Changed line 20 from:
http://www.maxvessi.net/rebsite/Linux/  %height=50px%Attach:tux.jpg
to:
http://www.maxvessi.net/rebsite/Linux/  %height=50px%Attach:tux.jpg Attach:deb.jpg Attach:rpm.jpg Attach:tgz.jpg%%
December 07, 2010, at 02:04 PM by Massimiliano Vessi -
Changed line 16 from:
%newwin%[[http://www.rebol.com/download-view.html]]
to:
%newwin%[[http://www.rebol.com/download-view.html]] Attach:logo-win32.gif %height=50px%Attach:tux.jpg Attach:logo-Mac.gif Attach:logo-obsd.gif
December 07, 2010, at 02:01 PM by Massimiliano Vessi -
Changed line 20 from:
http://www.maxvessi.net/rebsite/Linux/
to:
http://www.maxvessi.net/rebsite/Linux/  %height=50px%Attach:tux.jpg
December 07, 2010, at 01:59 PM by Massimiliano Vessi -
Changed line 34 from:
E il gruppo '''Facebook''': %newwin%[[http://www.facebook.com/home.php#/group.php?gid=99459740077]]
to:
E il gruppo '''Facebook''': %newwin%[[http://www.facebook.com/home.php#/group.php?gid=99459740077]] Attach:facebook.jpg
December 07, 2010, at 12:57 PM by Massimiliano Vessi -
Changed line 36 from:
Il pagina Rebol World:  [[http://www.maxvessi.net/rebsite/wr/]]
to:
Il pagina Rebol World:  [[http://www.maxvessi.net/rebsite/wr/]] http://www.maxvessi.net/rebsite/wr/Earth.gif
December 07, 2010, at 10:26 AM by Massimiliano Vessi -
Changed line 974 from:
E' possibile ottenere il checksum dei file o di un qualunque dato; per chi non lo il ''checksum'' e' come la firma di un file, permette di capire se due file sono uguali. Il checksum che fa Rebol e' il tipo CRC. Il comando si lancia cosi':
to:
E' possibile ottenere il checksum dei file o di un qualunque dato; per chi non lo conosce, il ''checksum'' e' come la firma di un file, permette di capire se due file sono uguali. Il checksum che fa Rebol e' il tipo CRC. Il comando si lancia cosi':
December 07, 2010, at 10:24 AM by Massimiliano Vessi -
Added lines 970-987:


!Checksum

E' possibile ottenere il checksum dei file o di un qualunque dato; per chi non lo il ''checksum'' e' come la firma di un file, permette di capire se due file sono uguali. Il checksum che fa Rebol e' il tipo CRC. Il comando si lancia cosi':
 checksum %prova.jpg
 == 13260183

ha molte opzioni, eccole:
* /tcp -- Returns an Internet TCP 16-bit checksum.
* /secure -- Returns a cryptographically secure checksum.
* /hash -- Returns a hash value
** size -- Size of the hash table (Type: integer)
* /method -- Method to use
**  word -- Method: SHA1 MD5 (Type: word)
*  /key -- Returns keyed HMAC value
**  key-value -- Key to use (Type: any-string)

November 19, 2010, at 10:28 AM by Massimiliano Vessi -
Changed lines 1494-1553 from:
face - base face style
blank-face - empty style (transparent, minimized)
IMAGE - base style for images
BACKDROP - image scaled to fill pane
BACKTILE - image tiled to fill pane
BOX - shortcut for image
BAR - horizontal separator
SENSOR - transparent sensor area
KEY - keyboard action
BASE-TEXT - base text style
VTEXT - video text (light on dark)
TEXT - document text
BODY - document text
TXT - document text
BANNER - video text title
VH1 - video text heading
VH2 - video text heading
VH3 - video text heading
VH4 - video text heading
LABEL - label for dark background
VLAB - label for dark forms, right aligned
LBL - label for light background
LAB - label for light forms, right aligned
TITLE - document title
H1 - document heading
H2 - document heading
H3 - document heading
H4 - document heading
H5 - document heading
TT - typewriter text (monospaced)
CODE - source code text (monospaced)
BUTTON - rectangular, rendered buttons
CHECK - rectangular, rendered buttons
CHECK-MARK - transparent sensor area
RADIO - transparent sensor area
CHECK-LINE - base text style
RADIO-LINE - base text style
LED - rectangular, rendered buttons
ARROW - rectangular, rendered buttons
TOGGLE - rectangular, rendered buttons
ROTARY - rectangular, rendered buttons
CHOICE - rectangular, rendered buttons
DROP-DOWN - document text
ICON - base face style
FIELD - base face style
INFO - base face style
AREA - base face style
SLIDER - base face style
SCROLLER - base face style
PROGRESS - base style for images
PANEL - base style for images
LIST - base style for images
TEXT-LIST - document text
ANIM - base style for images
BTN - base face style
BTN-ENTER - base face style
BTN-CANCEL - base face style
BTN-HELP - base face style
LOGO-BAR - base style for images
TOG - base face style
to:
*face - base face style
*blank-face - empty style (transparent, minimized)
*IMAGE - base style for images
*BACKDROP - image scaled to fill pane
*BACKTILE - image tiled to fill pane
*BOX - shortcut for image
*BAR - horizontal separator
*SENSOR - transparent sensor area
*KEY - keyboard action
*BASE-TEXT - base text style
*VTEXT - video text (light on dark)
*TEXT - document text
*BODY - document text
*TXT - document text
*BANNER - video text title
*VH1 - video text heading
*VH2 - video text heading
*VH3 - video text heading
*VH4 - video text heading
*LABEL - label for dark background
*VLAB - label for dark forms, right aligned
*LBL - label for light background
*LAB - label for light forms, right aligned
*TITLE - document title
*H1 - document heading
*H2 - document heading
*H3 - document heading
*H4 - document heading
*H5 - document heading
*TT - typewriter text (monospaced)
*CODE - source code text (monospaced)
*BUTTON - rectangular, rendered buttons
*CHECK - rectangular, rendered buttons
*CHECK-MARK - transparent sensor area
*RADIO - transparent sensor area
*CHECK-LINE - base text style
*RADIO-LINE - base text style
*LED - rectangular, rendered buttons
*ARROW - rectangular, rendered buttons
*TOGGLE - rectangular, rendered buttons
*ROTARY - rectangular, rendered buttons
*CHOICE - rectangular, rendered buttons
*DROP-DOWN - document text
*ICON - base face style
*FIELD - base face style
*INFO - base face style
*AREA - base face style
*SLIDER - base face style
*SCROLLER - base face style
*PROGRESS - base style for images
*PANEL - base style for images
*LIST - base style for images
*TEXT-LIST - document text
*ANIM - base style for images
*BTN - base face style
*BTN-ENTER - base face style
*BTN-CANCEL - base face style
*BTN-HELP - base face style
*LOGO-BAR - base style for images
*TOG - base face style
November 19, 2010, at 10:26 AM by Massimiliano Vessi -
Added lines 1489-1553:

!! Tutti i comandi di VID

Ecco la lista:

face - base face style
blank-face - empty style (transparent, minimized)
IMAGE - base style for images
BACKDROP - image scaled to fill pane
BACKTILE - image tiled to fill pane
BOX - shortcut for image
BAR - horizontal separator
SENSOR - transparent sensor area
KEY - keyboard action
BASE-TEXT - base text style
VTEXT - video text (light on dark)
TEXT - document text
BODY - document text
TXT - document text
BANNER - video text title
VH1 - video text heading
VH2 - video text heading
VH3 - video text heading
VH4 - video text heading
LABEL - label for dark background
VLAB - label for dark forms, right aligned
LBL - label for light background
LAB - label for light forms, right aligned
TITLE - document title
H1 - document heading
H2 - document heading
H3 - document heading
H4 - document heading
H5 - document heading
TT - typewriter text (monospaced)
CODE - source code text (monospaced)
BUTTON - rectangular, rendered buttons
CHECK - rectangular, rendered buttons
CHECK-MARK - transparent sensor area
RADIO - transparent sensor area
CHECK-LINE - base text style
RADIO-LINE - base text style
LED - rectangular, rendered buttons
ARROW - rectangular, rendered buttons
TOGGLE - rectangular, rendered buttons
ROTARY - rectangular, rendered buttons
CHOICE - rectangular, rendered buttons
DROP-DOWN - document text
ICON - base face style
FIELD - base face style
INFO - base face style
AREA - base face style
SLIDER - base face style
SCROLLER - base face style
PROGRESS - base style for images
PANEL - base style for images
LIST - base style for images
TEXT-LIST - document text
ANIM - base style for images
BTN - base face style
BTN-ENTER - base face style
BTN-CANCEL - base face style
BTN-HELP - base face style
LOGO-BAR - base style for images
TOG - base face style
November 15, 2010, at 01:00 PM by Massimiliano Vessi -
Added lines 960-969:


Un altro modo molto comodo per organizzare i dati è mettere davanti ai dati la descrizione:
 a: [nome "Mario" cognome "Rossi" stipendio $1000 assunzione 15/5/1990 ]
 select a 'nome
 == "Mario"
 select a 'stipendio
 == $1000

In questo modo i dati possono essere inseriti in qualsiasi ordine.
November 12, 2010, at 05:23 PM by Massimiliano Vessi -
Added lines 35-36:

Il pagina Rebol World:  [[http://www.maxvessi.net/rebsite/wr/]]
October 20, 2010, at 12:53 PM by Massimiliano Vessi -
Changed lines 1186-1196 from:
Se preferiti colori diversi da quelli di default, si possono decidere nella massima libertà. \\
to:
Se preferiti colori diversi da quelli di default, si possono decidere nella massima libertà.

!!Bottoni

Per i bottoni il comando e' '''button''':

 view layout [
  button "Premi qui!" [ alert "Bravo!"]


October 05, 2010, at 07:14 PM by Massimiliano Vessi -
Added lines 1285-1291:


Per sapere quale elemento e' stato scelto, basta usare il raffinamento '''picked''', esempio:

 view layout [
  a: text-list "Marco" "Laura" [print a/picked]
  ]
September 22, 2010, at 09:51 AM by Massimiliano Vessi -
Changed line 946 from:
 == [["Nome" "Cognome" "0650603080" $40.00  52]]
to:
 == [ ["Nome" "Cognome" "0650603080" $40.00  52] ]
Changed line 948 from:
 == [["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23]]
to:
 == [ ["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23] ]
Changed line 953 from:
 == [["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23]]
to:
 == [ ["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23] ]
September 22, 2010, at 09:49 AM by Massimiliano Vessi -
Changed lines 937-939 from:


to:
!Database
In Rebol esistono varie librerie per dialogare con i piu' famosi database del mondo, se comunque ci serve di creare un semplice database possiamo sfruttare le funzioni base.

Per organizzare i dati basta creare una serie vuota:
 db: copy []
 == []

poi possiamo aggiungere i dati con il seguente comando (i dati sono di pura fantasia):
 append/only db  ["Nome" "Cognome" "0650603080" $40  52]
 == [["Nome" "Cognome" "0650603080" $40.00  52]]
 append/only db  ["Gino" "Rossi" "068052080" $50  23]
 == [["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23]]
poi possiamo salvare i dati con il seguente comando:
 save %file_dati.txt  db
e per recuperarli basta:
 db: load %file_dati.txt
 == [["Nome" "Cognome" "0650603080" $40.00  52] ["Gino" "Rossi" "068052080" $50.00  23]]

In questa maniera abbiamo un database dove è semplicemente accessibile ogni elemento, ad esempio '''Gino''' e'  '''db/2/1''':
 db/2/1
 == "Gino
September 17, 2010, at 04:43 PM by Massimiliano Vessi -
September 17, 2010, at 04:40 PM by Massimiliano Vessi -
Changed lines 18-23 from:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol-2.7.7.4.3-9.i386.deb |  rebol.deb]] %height=40px%Attach:deb.jpg%%

Oppure il paccheto Linux in formato
'''RPM''':  [[Attach:rebol-2.7.7.4.3-10.i386.rpm |rebol.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)

Oppure
il paccheto Slackware in formato '''TGZ''':  [[Attach:rebol-2.7.7.4.3-10.tgz |rebol.tgz]] %height=40px%Attach:tgz.jpg%% 
to:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''' %height=40px%Attach:deb.jpg%%, il paccheto Linux in formato '''RPM''' %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.) Oppure il paccheto Slackware in formato '''TGZ''' %height=40px%Attach:tgz.jpg%%  da questo indirizzo:

http://www
.maxvessi.net/rebsite/Linux/
September 16, 2010, at 05:22 PM by Massimiliano Vessi -
Added lines 930-940:

!Criptare e decriptare

E' possibile sia decriptare che decriptare dei testi, basta usare '''encloak''' e '''decloack''' ; per entrambi i programmi e' necessario fornire la stessa chiave di criptazione:

 >> encloak "prova" "chiave"
 == "›ˆ\^X"
 >> decloak "›ˆ\^X"    "chiave"
 == "prova"

September 15, 2010, at 03:58 PM by Massimiliano Vessi -
Changed lines 20-22 from:
Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-10.i386.rpm |rebol.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)

Oppure il paccheto Slackware in formato TGZ:  [[Attach:rebol-2.7.7.4.3-10.tgz |rebol.tgz]] %height=40px%Attach:tgz.jpg%% 
to:
Oppure il paccheto Linux in formato '''RPM''':  [[Attach:rebol-2.7.7.4.3-10.i386.rpm |rebol.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)

Oppure il paccheto Slackware in formato '''TGZ''':  [[Attach:rebol-2.7.7.4.3-10.tgz |rebol.tgz]] %height=40px%Attach:tgz.jpg%% 
September 15, 2010, at 03:44 PM by Massimiliano Vessi -
Changed line 22 from:
to:
Oppure il paccheto Slackware in formato TGZ:  [[Attach:rebol-2.7.7.4.3-10.tgz |rebol.tgz]] %height=40px%Attach:tgz.jpg%% 
September 13, 2010, at 11:43 AM by Massimiliano Vessi -
Changed lines 18-20 from:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol-2.7.7.4.3-8.i386.deb |  rebol.deb]] %height=40px%Attach:deb.jpg%%

Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-9.i386.rpm |rebol.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
to:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol-2.7.7.4.3-9.i386.deb |  rebol.deb]] %height=40px%Attach:deb.jpg%%

Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-10.i386.rpm |rebol.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
September 10, 2010, at 05:40 PM by Massimiliano Vessi -
Changed line 20 from:
Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-9.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
to:
Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-9.i386.rpm |rebol.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
September 10, 2010, at 05:40 PM by Massimiliano Vessi -
Changed lines 18-20 from:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol.deb |  rebol.deb]] %height=40px%[[ Attach:rebol.deb | Attach:deb.jpg]]%%

Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-5.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%[[ Attach:rebol-2.7.7.4.3-5.i386.rpm| Attach:rpm.jpg]]%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
to:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol-2.7.7.4.3-8.i386.deb rebol.deb]] %height=40px%Attach:deb.jpg%%

Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-9.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%Attach:rpm.jpg%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
September 10, 2010, at 03:33 PM by Massimiliano Vessi -
Changed line 20 from:
Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-5.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%[[ Attach:rebol.deb | Attach:rpm.jpg]]%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
to:
Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-5.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%[[ Attach:rebol-2.7.7.4.3-5.i386.rpm| Attach:rpm.jpg]]%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
September 10, 2010, at 03:32 PM by Massimiliano Vessi -
Changed line 20 from:
Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-5.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%[[ Attach:rebol.deb | Attach:rpm.jpg]]%%
to:
Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-5.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%[[ Attach:rebol.deb | Attach:rpm.jpg]]%%  (Mandriva, Fedora, Red Hat, Suse, ecc.)
September 10, 2010, at 03:29 PM by Massimiliano Vessi -
Changed lines 18-20 from:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol.deb |  rebol.deb]] %height=50px%[[ Attach:rebol.deb | Attach:deb.jpg]]%%
to:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol.deb |  rebol.deb]] %height=40px%[[ Attach:rebol.deb | Attach:deb.jpg]]%%

Oppure il paccheto Linux in formato RPM:  [[Attach:rebol-2.7.7.4.3-5.i386.rpm |rebol-2.7.7.4.3-5.i386.rpm]] %height=40px%[[ Attach:rebol.deb | Attach:rpm
.jpg]]%%
September 07, 2010, at 05:29 PM by Massimiliano Vessi -
Added lines 144-146:

Se dovete azzerare il valore di una stinga (soprattuto all'interno di funzioni), consiglio:
 temp: copy ""
September 02, 2010, at 12:25 PM by Massimiliano Vessi -
Changed lines 8-9 from:
''In parole povere potete programmare in 5 minuti!''
to:
''In parole povere potete programmare in 5 minuti!'', e funziona su Windows, Linux e Mac!
Changed line 18 from:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb |  rebol.deb]] %height=50px%[[ Attach:rebol.deb | Attach:deb.jpg]]%%
to:
Oppure potete scaricare il pacchetto per '''Ubuntu/Debian''': [[Attach:rebol.deb |  rebol.deb]] %height=50px%[[ Attach:rebol.deb | Attach:deb.jpg]]%%
September 02, 2010, at 12:24 PM by Massimiliano Vessi -
Changed line 18 from:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb |  rebol.deb]] [[ Attach:rebol.deb | Attach:deb.jpg]]
to:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb |  rebol.deb]] %height=50px%[[ Attach:rebol.deb | Attach:deb.jpg]]%%
September 01, 2010, at 11:42 AM by Massimiliano Vessi -
Changed lines 21-23 from:
Attach:RebolIOS.jpg

to:


Added lines 61-63:


Attach:RebolIOS.jpg
September 01, 2010, at 11:41 AM by Massimiliano Vessi -
Changed line 18 from:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb | Attach:deb.jpg  rebol.deb]]
to:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb | rebol.deb]] [[ Attach:rebol.deb | Attach:deb.jpg]]
September 01, 2010, at 11:40 AM by Massimiliano Vessi -
Changed line 18 from:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb | rebol.deb]]
to:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb | Attach:deb.jpg rebol.deb]]
Changed line 18 from:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: Attach:rebol.deb
to:
Oppure potete scaricare il pacchetto per Ubuntu/Debian: [[Attach:rebol.deb | rebol.deb]]
Added lines 17-18:

Oppure potete scaricare il pacchetto per Ubuntu/Debian: Attach:rebol.deb
July 06, 2010, at 01:43 PM by Massimiliano Vessi -
Changed lines 491-492 from:
to:
!!Funzioni Matematiche
Added lines 511-519:

!!Arrotondamento

L'arrotondamento si fa con il comando '''round/to''' (mentre il troncamento solo con '''round'''). Bisogna sempe impostare il fattore di arrotondamento, esempio:

 a: 10.123456
 == 10.123456
 round/to a 0.01
 == 10.12
July 02, 2010, at 11:36 AM by Massimiliano Vessi -
Changed line 517 from:
Un elenco delle funzioni piu' utili si puo' scaricare:
to:
Un elenco delle funzioni piu' utili si puo' scaricare dal seguenti link:
July 02, 2010, at 11:35 AM by Massimiliano Vessi -
Added lines 516-519:

Un elenco delle funzioni piu' utili si puo' scaricare:

Attach:ListaComandiRebol.pdf
June 25, 2010, at 10:32 AM by Massimiliano Vessi -
Changed line 1446 from:
line 5x5  5x90view layout [image logo.gif effect [fit 100x100]]
to:
line 5x5  5x90
June 25, 2010, at 10:18 AM by Massimiliano Vessi -
Changed line 322 from:
!I blocchi
to:
!I blocchi o serie
Added lines 328-331:

per creare una nuova serie usate i comando '''copy''']

 b: copy []
June 09, 2010, at 04:56 PM by Massimiliano Vessi -
Changed line 1420 from:
Per avere RebGui o vi collegate al sito di chi l'ha scritto (ha anche la guida):
to:
Per avere RebGui o vi collegate al sito di chi l'ha scritto (c'e' anche la guida):
June 09, 2010, at 04:55 PM by Massimiliano Vessi -
Added lines 1419-1425:

Per avere RebGui o vi collegate al sito di chi l'ha scritto (ha anche la guida):
http://www.dobeash.com/rebgui.html

o la scaricate da qui:
Attach:rebgui.zip

June 09, 2010, at 04:52 PM by Massimiliano Vessi -
Added lines 1406-1418:


!RebGui

Se VID e' semplice e basilare, esiste RebGUI che è una versione di VID molto più bella da poter utilizzare. Per usarla basta aggiungere :

 do %rebgui.r
 ;... il mio script ...
 ;... fine dello script...
 do-events
 
e avrete:
Attach:rebgui.jpg
June 03, 2010, at 04:17 PM by Massimiliano Vessi -
Added lines 1272-1279:


!!Eseguire comandi allinterno di VID
E' difficile che dobbiate eseguire dei comandi, ma potrebbe risultarvi comodo per impostare alcune variabili. Beh, per eseguire dei comandi basta usare il comando '''do''':
 view layout [
  button
  do [ print "Ciao mondo!"]
  ]
June 02, 2010, at 11:33 PM by Massimiliano Vessi -
Added lines 1239-1249:

!!Aggiungere uno scroller per gli elementi di testo

Per aggiungere uno scroller per scorrere gli elementi di testo, basta usare il comando '''scroll-para''', questo comando collega uno elemnto di testo con uno scroller:

 
 view layout [across 
  a: area
  b: scroller [scroll-para a b]
  ]

June 01, 2010, at 11:29 AM by Massimiliano Vessi -
Changed line 573 from:
!!Clipboard (copie e incolla)
to:
!!Clipboard (copia e incolla)
Added lines 580-594:

!!Informazioni sui DNS

Ecco un esempio
 print read dns://msn.com

!!Gruppi usenet

 print read nntp://public.teranews.com       
 ; (Hit the [ESC] key to stop
 ;  this Usenet listing.)
oppure
 print read nntp://news.eternal-september.org

June 01, 2010, at 11:02 AM by Massimiliano Vessi -
Added lines 571-579:


!!Clipboard (copie e incolla)
E' possibile leggere la clipboard, cioe' il luogo del computer dove si memorizzano i dati del '''copia''' di ogni programma.
Esempio:
 
 a: read clipboard://
 ;oppure
 editor clipboard://
June 01, 2010, at 10:55 AM by Massimiliano Vessi -
Added lines 559-571:

!Altri protocolli di comunicazione

Con Rebol e' possibile leggere e scrivere da altre fonti, ecco alcuni esempi:

!!Internet

Leggere da internet e' semplicissimo: riconosce automaticamente un indirizzo web, quindi se volete leggere una pagina:

 editor http://www.rebol.com
 ;oppure
 a: read http://www.rebol.com

May 28, 2010, at 04:41 PM by Massimiliano Vessi -
Added lines 1225-1283:
!!Capire le variabili utilizzabili di un elemento

Molte volte e' difficile capire cosa si puo' sfruttare di un elemento di VID, il seguente script vi aiutera':
 view layout [ b: check a: button [ ? b]]

Come vedete il punto interrogativo può essere usato come '''help''' sugli elementi VID, infatti la risposta che otterrete premendo il pulsante è (usate prima l'elemento per attivarne alcuni valori, ad esempio ''data'' e' '''null''' finche' non ci cliccate sopra:

 B is an object of value:
  type            word!    face
  offset          pair!    20x20
  size            pair!    16x16
  span            none!    none
  pane            none!    none
  text            none!    none
  color          tuple!    240.240.240
  image          none!    none
  effect          block!    length: 1
  data            logic!    true
  edge            object!  [color image effect size]
  font            none!    none
  para            none!    none
  feel            object!  [redraw detect over engage cue blink]
  saved-area      none!    none
  rate            none!    none
  show?          logic!    true
  options        none!    none
  parent-face    object!  [type offset size span pane text color image effec...
  old-offset      pair!    20x20
  old-size        pair!    16x16
  line-list      none!    none
  changes        none!    none
  face-flags      integer!  1
  action          none!    none
  state          logic!    false
  access          object!  [set-face* get-face* clear-face* reset-face*]
  style          word!    check
  alt-action      none!    none
  facets          none!    none
  related        none!    none
  words          none!    none
  colors          none!    none
  texts          none!    none
  images          none!    none
  file            none!    none
  var            word!    b
  keycode        none!    none
  reset          none!    none
  styles          none!    none
  init            block!    length: 0
  multi          object!  [text size file image color block]
  blinker        none!    none
  pane-size      pair!    140x88
  dirty?          none!    none
  help            none!    none
  user-data      none!    none
  flags          block!    length: 2
  doc            object!  [info string image logic integer pair tuple file u...
  effects        none!    none
  depth          integer!  128
May 28, 2010, at 02:08 PM by Massimiliano Vessi -
Added lines 1216-1224:

!!Nascondere e mostrare
E' possibile far scomparire e riapparire gli elementi di VID con i comandi '''show''' e '''hide''', ecco un esempio molto divertente:
 view layout [
    a: text "Testo magico"
    button "Nascondi" [ hide a]
    button "Mostra" [show a]
    ]

May 28, 2010, at 02:02 PM by Massimiliano Vessi -
Changed lines 1129-1136 from:
to:
!!Casella di controllo (check)
La casella '''check''' può essere comodo per far decidere si o no all'utente. DI partenza il suo valore è nullo, e puo' diventare true o false; si accede al suo contenuto con /data. Meglio un esempio che chiarisca le idee:
 view layout [
    a: check [b/text: a/data show b ]
    b: text 100x20
    ]

Attach:chekRebol.jpg
May 20, 2010, at 06:01 PM by Massimiliano Vessi -
Added lines 34-35:

Potete scaricare tantissimi esempi da: [[http://www.rebol.org/script-index.r]]
April 27, 2010, at 07:02 PM by Massimiliano Vessi -
Changed lines 973-982 from:
to:
!!Eseguire operazioni
E' possibile eseguire delle operazioni, basta metterle tra parentesi tonde, ad esempio:
 a: "Che bella persona!"
 parse a [
    to "bella" (print "trovato bella")
    to "persona" (print "trovato persona")
    to end
    ]
 ==trovato bella
 ==trovato persona
April 27, 2010, at 06:59 PM by Massimiliano Vessi -
Changed lines 949-952 from:
Il comando '''end'' serve a dire che dopo non ci deve essere nulla.


 
to:
Il comando '''end'' serve a dire che dopo non ci deve essere nulla.
Added line 953:
Added lines 960-973:


!!Charset (set di caratteri)
E' possibile specificare un set di caratteri, per esempio da 0 a 9, con il comando '''charset'''
 numeri: charset "0123456789"
 a: "067025555"
 parse a [some numeri]
 == true

e' possibile anche indicare da che valore della tabella ASCII cominciare e finire per il set:
 lettere_min: charset [#"a" - #"z"]
 lettere: charset [#"A" - #"Z" #"a" - #"z"]

April 27, 2010, at 06:54 PM by Massimiliano Vessi -
Added lines 922-936:
Se non sapete quante volte, potete scrivere '''any''' (da zero in poi) o '''some''' (almeno uno):

 frase: "b"
 parse frase [ some "a"]
 == false
 parse frase [ any "a"]
 == true
 frase: "aaaab"
 parse frase [ some "a"]
 == true
 parse frase [ any "a"]
 == true
 

April 27, 2010, at 06:50 PM by Massimiliano Vessi -
Deleted lines 880-887:
!!Opzioni

Il carattere ''|'' permette di dare delle opzioni:

 a: "fiore"
 parse a ["fiore" | "casa"]
 == true

Added line 882:
L'uso piu' semplice di '''parse''' e' per suddividere.
Changed lines 891-896 from:
!!Testare
Si puo
' richiedere al comando '''parse'' se una certa parola e' ripetuta un certo numero di volte.

Ad esempio chiediamo se Max
e' ripetuto 4 volte:
 esemp: "Max Max Max Max"
 parse esemp [4
"Max"]
to:
!!Uso avanzato
'''parse''' e' uno strumento molto potente, perche' dopo la stringa da analizzare potete mettere tutta una serie di comandi e opzioni per controllare che la stringa corrsponda a quanto richiesto e se si (o solo per alcune parti), faccia qualcosa.

!!Opzioni

Il carattere ''|'' permette di dare delle opzioni:

 a:
"fiore"
 parse a ["fiore" | "casa
"]
Added lines 901-920:

ma andiamo oltre:
 mezzo: [ "in moto" | "in macchina"]
 chi: ["Sara" | "Laura"]
 parse frase [ chi mezzo ]

parse restituisce vero per tutte le combinazioni:
* "Sara in moto"
* "Sara in macchina"
* "Laura in moto"
* "Laura in macchina"


!!Testare
Si puo' richiedere al comando '''parse'' se una certa parola e' ripetuta un certo numero di volte.

Ad esempio chiediamo se Max e' ripetuto 4 volte:
 esemp: "Max Max Max Max"
 parse esemp [4 "Max"]
 == true
Added lines 933-936:

Il comando '''end'' serve a dire che dopo non ci deve essere nulla.

Added line 939:
April 27, 2010, at 11:31 AM by Massimiliano Vessi -
Added lines 881-888:
!!Opzioni

Il carattere ''|'' permette di dare delle opzioni:

 a: "fiore"
 parse a ["fiore" | "casa"]
 == true

Added lines 910-918:
!!Saltare l'input
Con i comandi ''to'' e ''thru'' e' possibile saltare il contenuto di una stringa fino ad un certo punto. ''to'' prima della sequenza scelta, thru dopo. Esempi:
 >> a: "fiore.jpg"
 >> parse a [thru "." ["jpg"|"gif"] end]
 == true
 >> parse a [to "." [".jpg"|".gif"] end]
 == true
 
In questo modo abbiamo controllato se il nome è di una immagine.
April 27, 2010, at 11:25 AM by Massimiliano Vessi -
Added lines 902-908:

!!Controllare l'estensione di un file
Per controllare l'estensione di un file con '''parse''' e' molto semplice, proviamo a controllare che il file sia un PDF:

 a: request-file
 b: parse to-string a [ thru ".pdf" end]
 if b [alert "E' un PDF!"]
April 22, 2010, at 05:05 PM by Massimiliano Vessi -
Changed line 138 from:
!!!Caratteri speciali per le stringhe
to:
!!Caratteri speciali per le stringhe
April 20, 2010, at 03:19 AM by Massimiliano Vessi -
Changed lines 16-18 from:
[[http://www.rebol.com/download-view.html]]

to:
%newwin%[[http://www.rebol.com/download-view.html]]

Changed lines 29-33 from:
Esiste il forum in '''italiano''': [[http://rebol.forumup.it/]]

Ed esiste il forum in lingua '''inglese''': [[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]

E il gruppo '''Facebook''': [[http://www.facebook.com/home.php#/group.php?gid=99459740077]]
to:
Esiste il forum in '''italiano''': %newwin%[[http://rebol.forumup.it/]]

Ed esiste il forum in lingua '''inglese''': %newwin%[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]

E il gruppo '''Facebook''': %newwin%[[http://www.facebook.com/home.php#/group.php?gid=99459740077]]
April 20, 2010, at 03:14 AM by Massimiliano Vessi -
Changed lines 31-33 from:
Ed esiste il '''forum''' in lingua inglese: [[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]
to:
Ed esiste il forum in lingua '''inglese''': [[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]

E il gruppo '''Facebook''': [[http://www.facebook.com/home.php#/group.php?gid=99459740077
]]
April 20, 2010, at 03:10 AM by Massimiliano Vessi -
Changed lines 29-31 from:
Ed esiste il '''forum''' in lingua inglese:

[[http:
//synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]
to:
Esiste il forum in '''italiano''': [[http://rebol.forumup.it/]]

Ed esiste il '''forum''' in lingua inglese:
[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]
April 07, 2010, at 06:18 PM by Massimiliano Vessi -
Changed line 10 from:
'''Adesso è disponibile anche le lezioni video: [[RebolVideoGuida ]] '''
to:
'''Adesso sono disponibili anche le lezioni video: [[RebolVideoGuida ]] '''
April 07, 2010, at 06:18 PM by Massimiliano Vessi -
Changed lines 9-11 from:
'''Adesso è disponibile anche le lezioni video: [[RebolVideoGuida ]]
to:

'''Adesso è disponibile anche le lezioni video: [[RebolVideoGuida ]] '''
April 07, 2010, at 06:17 PM by Massimiliano Vessi -
Added line 9:
'''Adesso è disponibile anche le lezioni video: [[RebolVideoGuida ]]
April 07, 2010, at 06:08 PM by Massimiliano Vessi -
Changed line 26 from:
Ed esiste il forum in lingua inglese:
to:
Ed esiste il '''forum''' in lingua inglese:
April 07, 2010, at 06:08 PM by Massimiliano Vessi -
Added lines 26-28:
Ed esiste il forum in lingua inglese:

[[http://synapse-ehr.com/forums/forumdisplay.php?3-Rebol]]
April 05, 2010, at 11:29 PM by Massimiliano Vessi -
Added lines 305-309:
!Eseguire programmi esterni
Molte volte esistono programmi scritti in altri linguaggi che sono gia' pronti a fare quello che ci serve, con Rebol e' possibili usarli. Per lanciare un eseguibile, basta usare il comando '''call''', esempi:

 >> call notpad.exe
 >> call "ls -l"
April 05, 2010, at 10:51 PM by Massimiliano Vessi -
Added lines 292-305:

!Spostarsi tra le cartelle
Se eseguiamo un programma, esso verrà eseguito nella cartella dove si trova il programma.
Che cartella e'? Il comando '''what-dir''' ci viene in aiuto e ce lo svela:

 >> what-dir
 == %/home/max/Libri/

Per spostarci possiamo usare il comando '''change-dir''':

 >> change-dir %/home/max/Libri/
 == %/home/max/Libri/

April 02, 2010, at 04:57 PM by Massimiliano Vessi -
Changed line 594 from:
 "Una funaione per fare la somma e a media di numeri"
to:
 "Una funzione per fare la somma e a media di numeri"
Added lines 609-626:

!!Funzioni ricorrenti
Una funzione ricorrente e' una funzione che chiama se stessa per eseguire piu' volte la stessa cosa. E' utile ma e' anche molto facile creare cicli infiniti da cui non si esce piu'.

Vediamo un caso concreto: cerchiamo di entrare in tutte le cartelle, partendo da dove e' eseguito il programma. Ecco come si fa:

 funz_ric: func [ /local a] [
  a: read %.
  foreach nome a [
    if dir? nome [
      print reform ["Entro dentro " nome]
      change-dir nome
      funz_ric
      change-dir %..
      ]
  ]
 ]

February 19, 2010, at 07:07 PM by Massimiliano Vessi -
Changed line 142 from:
*^(xx) inserisce un carattere ACII, dove ''xx'' sta per il valore esadecimaleexpansion into unicode characters in the future.
to:
*^(xx) inserisce un carattere ACII, dove ''xx'' sta per il valore esadecimale
February 19, 2010, at 07:07 PM by Massimiliano Vessi -
Added line 126:
Added lines 129-143:

!!!Caratteri speciali per le stringhe

*^" insericsce i doppi apici "
*^} Inserisce la graffa destra }
*^^ inserisce l'accento circonflesso ^
*^/  o  ^(line) inserisce l'accapo
*^- o ^(tab) inserice un TAB
*^(page) comincia una nuova pagina
*^(back) cancella il carattere prima
*^(null) inserisce un carattere vuoto
*^(escape) inserisce Esc
*^(letter) inserisce un alettera di controllo (A-Z).
*^(xx) inserisce un carattere ACII, dove ''xx'' sta per il valore esadecimaleexpansion into unicode characters in the future.

January 21, 2010, at 03:23 PM by Massimiliano Vessi -
Added lines 14-16:


Attach:RebolIOS.jpg
January 21, 2010, at 02:20 AM by Massimiliano Vessi -
Changed lines 1112-1114 from:

Possiamo impostare una rotazione
 view layout [ image logo.gif effect [ rotate 90
]]
to:
!!!Effetti alle immagini
E' possibile applicare tutta una serie di effetti alle immagini:
!!!!FIT
Scala l'immagine
 view layout [image logo.gif effect [fit 100x100
]]
!!!!ASPECT
Scala l'immagine ma preseerva le proporzioni:
 view layout [image logo.gif effect [aspect 100x100]]

Changed line 1144 from:
line 5x5  5x90
to:
line 5x5  5x90view layout [image logo.gif effect [fit 100x100]]
January 21, 2010, at 02:02 AM by Massimiliano Vessi -
Changed lines 1091-1092 from:
  
to:

!!Immagini
E' possibile mettere delle immagini con il comando '''image''':
 view layout [
    image logo.gif
    ]

!!!Modificare le immagini
Rebol permette di modificare le immagini, con tante funzioni  a disposizioni.
Prima di tutto carichiamo un'immagine:
 a: load %esempio.jpg
poi possiamo estrarre delle informazioni(altezza e larghezza):
 b: a/size/x
 c: a/size/y

a questo punto possiamo anche cambiare le dimensioni dell'immagine:
 view layout[
    image a 50x50
    ]
Poi se si mette un colore apparira' come sfondo
 view layout [ image 200.123.200 logo.gif]

Possiamo impostare una rotazione
 view layout [ image logo.gif effect [ rotate 90]]
January 12, 2010, at 12:31 PM by Massimiliano Vessi -
Added lines 79-81:

!!MAC
Si scarica si decomprime e si installa come tutti i programmi.
January 12, 2010, at 12:30 PM by Massimiliano Vessi -
Added lines 62-67:

!!Scaricarlo

Basta scaricarlo da qui:
[[http://www.rebol.com/download-view.html]]

January 12, 2010, at 12:29 PM by Massimiliano Vessi -
Changed line 7 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb ''(mezzo floppy, praticamente meno di una foto!!!)''
Changed lines 11-12 from:
'''Si scarica da qui:
to:
'''Si scarica da qui:'''
Changed line 14 from:
'''
to:
January 12, 2010, at 12:28 PM by Massimiliano Vessi -
Changed line 7 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo.
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo e occupa solo 500kb (mezzo floppy, praticamente meno di una foto!!!)
Added lines 11-14:
'''Si scarica da qui:

[[http://www.rebol.com/download-view.html]]
'''
January 11, 2010, at 02:03 AM by Massimiliano Vessi -
Added line 1404:
*'''data''', i dati del file audio
Added lines 1410-1413:
si modificano come i dati di un oggetto:
 a: load %esempio.wav
 a/volume: 0.5
 a/channels: 2
January 11, 2010, at 01:59 AM by Massimiliano Vessi -
Added lines 1402-1408:
!!Migliorare l'audio
Quando carichiamo un suono, possiamo modificare la qualita' del suono. E' possibili variare i seguenti parametri:
*'''volume''', il volume dell'audio; valore tra 0 e 1
*'''channels''', quanti canali se 1 o 2
*'''bits''', i bit di campionamento se 8, 16, 24, 32
*'''rate''', il frequenza di campionamento in Hertz

January 08, 2010, at 06:07 PM by Massimiliano Vessi -
Added lines 1397-1401:
 audio1: open sound://
 a: load %esemepio.wav
 insert audio1 a
 wait audio1
 close audio1
January 08, 2010, at 05:46 PM by Massimiliano Vessi -
Changed lines 1395-1397 from:
!!
to:
!!Suonare un file
Rebol accetta come formato dei file il '''wav'''. Ecco come far suonare un file:
 
January 08, 2010, at 05:41 PM by Massimiliano Vessi -
Changed lines 1388-1395 from:
Come avete visto dall'esempio, per aprire una porta audio
to:
Come avete visto dall'esempio, per aprire una porta audio bisogna usare il seguente comando:
 audio1: open sound://

al posto della variabile '''audio1''' potete usare quello che vi pare.
Una volta aperta la porta, le altre applicazioni non possono accedervi.
Quando abbiamo finito con l'audio ricordiamo di chiuderlo:
 close audio1
!!
January 08, 2010, at 05:34 PM by Massimiliano Vessi -
Added lines 1374-1388:

!Suono
Con Rebol e' possibile anche utilizzare i suoni.
!!Aprire e chiudere una porta audio
L'audio per Rebol e' una porta quindi va aperta e chiusa. Per vedere se potete usare l'audio, lanciate:
 if error? try [
 sound-port: open sound://
 close sound-port
 ] [
 alert "Non puoi accedere all'audio"
 quit
 ]
Se non vi appare un messaggio di errore, potete usare l'audio.

Come avete visto dall'esempio, per aprire una porta audio
January 08, 2010, at 01:25 PM by Massimiliano Vessi -
Added lines 45-49:

!Video Guida
Esiste anche una guida fatta da filmati su youtube, potete vederli qui:
[[Rebol Video Guida]]

December 31, 2009, at 10:55 AM by Massimiliano Vessi -
Changed line 357 from:
*controllare se almeno una delle variabili e' uguale a 23
to:
*controllare se '''almeno una''' delle variabili e' uguale a 23
December 31, 2009, at 10:54 AM by Massimiliano Vessi -
Changed lines 376-410 from:
 
to:
!!!ANY
Significa uno qualunque, e ritorna il valore che incontra che non sia falso nel blocco:
 a: -3
 b: -5
 c: -7
 d: 9
 if any [(a > 1) (b > 1) c > 1 d > 1 ] [print "c'e' ne almeno uno che e' maggiore di 1"]
 == c'e' ne almeno uno che e' maggiore di 1

!!!NOT
E' la negazione del risultato (se e' vero diventa falso e viceversa):
 a: 5
 a = 5
 == true
 not a = 5
 == false

!!!OR
 '''O''' logico, ritorna vero se una delle due espressioni e' vera:
 a: -5
 b: 2
 if (a > 0) or (b > 0) [print "Almeno una variabile e' maggiore di zero"]
 == Almeno una variabile e' maggiore di zero

!!!XOR
'''XOR''' restituisce vero solo se uno e' vero e l'altro e' falso:

 >> true xor false
 == true
 >> true xor true
 == false
 >> false xor false
 == false

December 31, 2009, at 10:42 AM by Massimiliano Vessi -
Changed lines 353-374 from:
to:
!!Funzioni Logiche
Molte volte bisogna descrivere una condizione complicata, dove c'e' la necessita' di dover avere due o piu' condizioni da verificare contemporaneamente, grazie alle funzioni logiche possiamo chiedere a Rebol di verificare se sono vere tuee od alcune condizioni.
Esempi:
*controllare che la variabile a e' maggiore di 5 '''o''' minore di 3.
*controllare se almeno una delle variabili e' uguale a 23

!!!AND
Rapresenta '''E''' logico:
 a: 3
 b: 5
 if (a > 1) and (b > 1) [print "a e b sono entrambi maggiori di 1"]
 == a e b sono entrambi maggiori di 1

!!!ALL
Rappresenta '''tutti veri''', controlla se tutte le espressioni nel blocco sono vere e esce con l'ultimo valore del blocco. In pratica e come avere tutti and uno dietro l'altro, ma con una piccola sofisticazione in piu' per renderlo piu' versatile:

 a: 3
 b: 5
 c: 7
 d: 9
 if all [(a > 1) (b > 1) c > 1 d > 1 true] [print "sono tutti maggiori di 1"]
 == sono tutti maggiori di 1
December 31, 2009, at 09:34 AM by Massimiliano Vessi -
Added lines 291-297:

!!EITHER
Questo comando serve per fare delle scelte fra 2 opzioni, il primo blocco saranno sel istruzioni se la condizione e' vera; il secondo blocco se l'istruzione e' falsa:
 >>a: 3
 >> either a > 1 [ print "E' vero: a e' maggiore di 2"] [
 >>    print "E' falso: a e' minore di 2"]
 == "E' vero: a e' maggiore di 2"
December 23, 2009, at 06:19 PM by Massimiliano Vessi -
Added lines 1285-1306:

!!TRANSLATE (traslare)
Trasla l'origine, con il comando '''reset-matrix''' rimettete tutto a posto:

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| traslazione || coppia || spostamento dell'origine ||


 view layout [ box 100x100 effect [ draw [
            circle 1x1 10
            pen red
            translate 20x20
            circle 1x1 10
            pen blue
            translate 20x20
            circle 1x1 10
            reset-matrix
            pen green
            box  1x1 10x10
            ]]]
Attach:rebtranslate.jpg
December 23, 2009, at 06:12 PM by Massimiliano Vessi -
Added lines 1269-1284:
!!TEXT (testo)
con questo comando possiamo inserire il testo, mentre con il comando '''font''' possiamo scegliere il tipo di font utilizzare:

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| testo || stringa || la stringa da inserire ||
|| posizione || coppia || la posizione della frase da inserire ||
|| modo || anti-aliased/vectorial/aliased || la modalità nello scriverla (opzionale) ||

 view layout [ box 300x100 effect [ draw [
            text "This is a string of text  - Default size (12)" 1x10
            text aliased "This is a string of text 2" 1x25
            text vectorial "This is a string of text 1" 1x75
            ]]]

Attach:rebtext.jpg
December 23, 2009, at 06:04 PM by Massimiliano Vessi -
Changed lines 1122-1131 from:
!!CURVE
Il
comando '''CURVE''' vi permette di ottenere una curva morbida che passa tra 3 o 4 punti (Curva di Beizer):

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| Punto 1 || Coppia || Primo estremo della curva ||
|| Punto 2 || Coppia || Secondo punto della curva ||
|| Punto 3 || Coppia || Terzo punto della curva  ||
|| Punto 4 || Coppia || Quarto punto della curva (opzionale) ||

to:


!!FILL-PEN
Il
comando in questione permette di decidere il riempimento delle figure disegnate successivamente; si puo' usare anche un'immagine:
Deleted lines 1127-1134:
           curve 1x90  50x3 32x90 90x10 ]]]

Attach:rebcurve.jpg

!!FILL-PEN
Il comando in questione permette di decidere il riempimento delle figure disegnate successivamente; si puo' usare anche un'immagine:

 view layout [ box 100x100 effect [ draw [
Added lines 1249-1268:

!!SPLINE (linea curva)
Permette di ottenere una linea curva tra un qualsiasi numero di punti, la curva sara' molto morbida se sara' indcato un numero di segmenti da utilizzare elevato:

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| numero segmenti || intero || numero di segmenti tra ogni punto ||
|| closed || closed || parola da utilizzare se la si vuole chiusa (opzionale) ||
|| punto || coppia || primo punto ||
|| punto || coppia || secondo punto ||
|| punto || coppia || terzo punto ||
|| ... || coppia || ... ||

 view layout [ box 100x100 effect [ draw [
            spline 10 closed 20x20  25x90 80x80 70x25
            pen red spline 2 closed 20x20  25x90 80x80 70x25
            ]]]

Attach:rebspline.jpg

December 23, 2009, at 05:49 PM by Massimiliano Vessi -
Added lines 1247-1261:

!!SCALE (scalare)
Si cambia la scala dei comandi, si puo' scegliere che valga solo per un asse:
||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| scala su x || decimale || scala dell'asse x ||
|| scala su y || decimale || scala dell'asse y ||

 view layout [ box 100x100 effect [ draw [
            fill-pen red box 0x0 100x100
            scale 0.5 0.5
            fill-pen blue box 0x0 100x100
            ]]]

Attach:rebscale.jpg
December 23, 2009, at 05:14 PM by Massimiliano Vessi -
Changed lines 1231-1246 from:
to:
!!ROTATE (ruotare)
Con rotate si ruota il sistema di riferimento per i comandi che vengono dopo:

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| angolo || decimale || angolo di rotazione ||


 view layout [ box 100x100 effect [ draw [
            fill-pen blue box 1x1 25x25
            rotate 30
            box 50x50 25x25
            box 90x1 50x50
            ]]]

Attach:rebrotate.jpg
December 23, 2009, at 05:05 PM by Massimiliano Vessi -
Changed line 1225 from:
view layout [ box 100x100 effect [ draw [
to:
 view layout [ box 100x100 effect [ draw [
December 23, 2009, at 05:04 PM by Massimiliano Vessi -
Added lines 1215-1231:

!!Polygon
Serve per fare figure chiuse:
||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| punto || coppia || primo punto ||
|| punto || coppia || secondo punto ||
|| punto || coppia || terzo punto ||
|| ... || coppia || ... ||

view layout [ box 100x100 effect [ draw [
            polygon 1x1  1x60 60x1 50x50
            ]]]

Attach:rebpolygon.jpg

December 23, 2009, at 04:59 PM by Massimiliano Vessi -
Changed lines 1193-1194 from:
|| spessore|| decimale || spessore della linea ||
to:
|| spessore || decimale || spessore della linea ||
Added lines 1200-1214:

!!PEN (impostare i colori)
Con il comando '''PEN''' si impostano il colore della penna:
||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| colore || tripletta || colore linea ||
|| colore || tripletta || colore linea pattern (opzionale) ||
|| immagine || tripletta || per usare un'immagine ||

 view layout [ box 100x100 effect [ draw [
            pen yellow red  line-width 5  box 50x50 250x250
            pen logo.gif  line-width 10  box 0x0  50x50
            ]]]

Attach:rebpen.jpg
December 23, 2009, at 04:46 PM by Massimiliano Vessi -
Added lines 1188-1199:

!!LINE-WIDTH (spessore linea)
Usato per variare lo spessore delle linee:
||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| spessore|| decimale || spessore della linea ||

 view layout [ box 100x100 effect [ draw [
            line-width 5  line 50x50 70x100 80x50 25x90
            ]]]

Attach:reblinewidth.jpg
December 22, 2009, at 11:26 AM by Massimiliano Vessi -
December 22, 2009, at 11:25 AM by Massimiliano Vessi -
Added lines 1171-1187:

!!LINE (linee e spezzate)

Se volete disegnare una linea o una spezzata, questo e' il comando di cui avete bisogno:

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| Punto 1 || Coppia || Primo punto ||
|| Punto 2 || Coppia || secondo punto ||
|| Punto 3 || Coppia || terzo punto (opzionale) ||
|| Punto 4 || Coppia || quarto punto (opzionale) ||
||Punto  ... || Coppia || ... punto (opzionale), e cosi' via ||

 view layout [ box 100x100 effect [draw [
  line 1x1 90x1 1x90 90x90 50x50 ]]]

Attach:rebline.jpg
December 21, 2009, at 06:17 PM by Massimiliano Vessi -
Added lines 1169-1170:

Attach:rebimage.jpg
December 21, 2009, at 05:42 PM by Massimiliano Vessi -
Changed line 1160 from:
view layout [ box 300x300 effect [ draw [
to:
 view layout [ box 250x250 effect [ draw [
Changed line 1162 from:
           image logo.gif 100x100 300x200
to:
           image logo.gif 1x50 100x100
Changed line 1164 from:
           image logo.gif 100x100 border
to:
           image logo.gif 1x100 border
Changed lines 1166-1168 from:
           image logo.gif 100x100 254.254.254 border
            image logo.gif 50x100 400x00 400x400 50x200
            image logo.gif 10x10 350x200 250x300 50x300
to:
           image logo.gif 120x1 254.254.254 border
            image logo.gif 1x150 150x180 150x200 1x200
December 21, 2009, at 05:06 PM by Massimiliano Vessi -
Changed lines 1145-1169 from:
Attach:rebfillpen.jpg
to:
Attach:rebfillpen.jpg

!!Image (immagini)
Per mettere un'immagine, grazie al comando '''IMAGE''' abbiamo tantissime opzioni: si può indicare la poszione, la forma indicando 2 o 4 punti,

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| Immagine || immagine || la variabile immagine da mostrare ||
|| Punto 1 || Coppia || Primo estremo alto a sinistra ||
|| Punto 2 || Coppia || Secondo estremo punto basso a destra (opzionale) ||
|| Punto 3 || Coppia || Terzo punto  (opzionale) ||
|| Punto 4 || Coppia || Quarto punto  (opzionale) ||
|| Colore trasparente || tripletta || Colore da rendere trasparente  (opzionale) ||
|| Bordo || border || Se mettere una cornice (opzionale) ||

view layout [ box 300x300 effect [ draw [
            image logo.gif 1x1
            image logo.gif 100x100 300x200
            pen yellow red line-width 5 line-pattern 5 5
            image logo.gif 100x100 border
            pen yellow red line-width 5 line-pattern 5 5
            image logo.gif 100x100 254.254.254 border
            image logo.gif 50x100 400x00 400x400 50x200
            image logo.gif 10x10 350x200 250x300 50x300
            ]]]
December 21, 2009, at 02:08 PM by Massimiliano Vessi -
Added lines 1136-1145:

!!FILL-PEN
Il comando in questione permette di decidere il riempimento delle figure disegnate successivamente; si puo' usare anche un'immagine:

 view layout [ box 100x100 effect [ draw [
  fill-pen blue  box 10x10 90x90
    fill-pen yellow circle 30x70 20
  ]]]

Attach:rebfillpen.jpg
December 21, 2009, at 01:56 PM by Massimiliano Vessi -
Changed lines 1106-1107 from:
!CIRCLE (cerchi ed ellissi)
to:
!!CIRCLE (cerchi ed ellissi)
Added lines 1122-1135:
!!CURVE
Il comando '''CURVE''' vi permette di ottenere una curva morbida che passa tra 3 o 4 punti (Curva di Beizer):

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| Punto 1 || Coppia || Primo estremo della curva ||
|| Punto 2 || Coppia || Secondo punto della curva ||
|| Punto 3 || Coppia || Terzo punto della curva  ||
|| Punto 4 || Coppia || Quarto punto della curva (opzionale) ||

 view layout [ box 100x100 effect [ draw [
            curve 1x90  50x3 32x90 90x10 ]]]

Attach:rebcurve.jpg
December 21, 2009, at 01:14 PM by Massimiliano Vessi -
Added lines 1105-1121:

!CIRCLE (cerchi ed ellissi)

Il comando permette di fare cerchi ed ellissi, pieni o vuoti. Per fare cerchi basta indicare un raggio solo:

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| Centro || Coppia || Centro della figura ||
|| Raggio X || Decimale || Raggio della circonferenza o primo asse dell'ellisse ||
|| Raggio Y || Decimale || Raggio del secondo asse dell'ellissi ||

 view layout [ box 100x100 effect [ draw [
            circle 30x30  20
            circle 60x60  35 15 ]]]

Attach:rebcircle.jpg

December 17, 2009, at 02:01 PM by Massimiliano Vessi -
Changed lines 1046-1047 from:
Il comando '''ARC'' serve per fare archi, ellissi e circonferenze. Sinossi:
to:
Il comando '''ARC''' serve per fare archi, ellissi e circonferenze. Sinossi:
Changed lines 1085-1105 from:
Attach:rebfrecce.jpg
to:
Attach:rebfrecce.jpg

!!BOX (rettangoli)

Per fare rettangoli, se scrivete '''fill-pen''' prima il rettangolo sarà pieno; potete riempirlo anche con una immagine (ripetuta):

||border=1
||! Argomento ||! Tipo ||! Descrizione ||
|| Angolo in alto sinistra || Coppia || Primo angolo del rettangolo ||
|| Angolo in basso a destra || Coppia || Ultimo angolo del rettangolo ||
|| Raggio di curvatura || Decimale || Se volete gli angoli arrotondati e di quanto ||

Esempio:

 view layout [ box 100x100  effect [ draw [
    box 10x10  30x30
    fill-pen red box 30x30 40x40
    fill-pen logo.gif box 10x50 60x90 ]]] 

Attach:rebbox.jpg
 
December 17, 2009, at 01:37 PM by Massimiliano Vessi -
Added lines 1059-1060:
Attach:rebarc.jpg
Changed line 1073 from:
  box 500x500 effect [
to:
  box 350x350 effect [
Changed lines 1078-1084 from:
   arrow 1x2  curve 50x50 300x50 50x300 300x300
  pen green
  arrow 1x2  spline 3 30x30 200x70 150x200 70x300 80x300 200x200
  pen black
  arrow 1x2  spline closed 3 20x20 250x70 170x200 400x300 80x300 180x200
  pen white
  arrow 1x2  polygon 40x40 200x90 150x220 50x320
to:
   arrow 1x2  curve 50x50 300x50 50x300 300x300 
Changed line 1080 from:
   arrow 1x2  box 400x400 330x330
to:
   arrow 1x2  box 100x50 230x330
Added line 1085:
Attach:rebfrecce.jpg
November 25, 2009, at 01:16 AM by Massimiliano Vessi -
Changed line 1049 from:
|| !Argomento || !Tipo || !Descrizione ||
to:
||! Argomento ||! Tipo ||! Descrizione ||
November 25, 2009, at 01:15 AM by Massimiliano Vessi -
Changed line 1065 from:
|| !Argomento || !Tipo || !Descrizione ||
to:
||! Argomento ||! Tipo ||! Descrizione ||
November 10, 2009, at 05:06 PM by Massimiliano Vessi -
Added lines 30-33:

!!!Gruppo Facebook

[[http://www.facebook.com/home.php#/group.php?gid=99459740077&ref=ts]]
November 05, 2009, at 05:08 PM by Massimiliano Vessi -
Added lines 726-756:



!Parsing (ovvero trovare nel testo)

Il parsing con Rebol è semplice e potente, ma solo se si conoscono le regole del comando '''parse'''. Di regola non distingue fra caratteri maiuscoli o minuscoli a meno che non si usa la raffinazione '''/case'''.

!!Suddividere
Per suddividere una stringa o un documento, basterà indicare il carattere o la sequenza di caratteri da usare come riferimento. Gli spazi vengono sempre usati a meno che non si usa la raffinazione '''/all''':

 esemp: "Ciao, mi chiamo Max, tu come ti chiami?"
 parse esemp none
 == ["Ciao" "mi" "chiamo" "Max" "tu" "come" "ti" "chiami?"]
 parse/all esemp ", "
 == ["Ciao" "mi chiamo Max" "tu come ti chiami?"]

!!Testare
Si puo' richiedere al comando '''parse'' se una certa parola e' ripetuta un certo numero di volte.

Ad esempio chiediamo se Max e' ripetuto 4 volte:
 esemp: "Max Max Max Max"
 parse esemp [4 "Max"]
 == true
 
Ora chiediamo se è ripetuta tra 2 e 5:
 parse esemp [2 5 "Max"]
 == true



November 04, 2009, at 09:31 AM by Massimiliano Vessi -
Changed line 34 from:
* '''GRATIS''': potete scaricare Rebol (meno di 1 MB) dal sito [[http://www.rebol.com/|http://www.rebol.com]] per far girare tutti i programmi
to:
* '''GRATIS''': potete scaricare Rebol (meno di 1 MB) dal sito [[http://www.rebol.com/|http://www.rebol.com]] per far girare tutti i programmi. Se invece andate su [[http://www.rebol.org]] troverete centinaia di programmi da scaricare e studiare.
October 19, 2009, at 02:03 PM by Massimiliano Vessi -
Changed line 29 from:
%lframe%  http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'
to:
%width=425px% http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg
October 19, 2009, at 01:58 PM by Massimiliano Vessi -
Changed line 29 from:
%lframe% width=200px http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'
to:
%lframe% http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'
October 19, 2009, at 01:57 PM by Massimiliano Vessi -
Added lines 523-537:
E' possibile creare un oggetto con una funzione:

 esempio: make object! [
    nome: "esempio"
    creazione: now
    ora_corrente: func [] [now]
    somma: func [ a b ] [ a + b]
    ]

e poi lanciate
  print esempio
  esempio/ora_corrente
  esempio/somma 2 3

Added lines 560-564:

!!Estrarre i valori
Se vogliamo estrarre un valore possiamo richiamarlo cosi':
 print moto/km
 print honda/luci
October 19, 2009, at 01:46 PM by Massimiliano Vessi -
Added line 471:
!!Aggiungere un raffinamento
Added lines 509-547:

!!Creare un oggetto

Per capire bene gli oggetti bisogna mettere subito in pratica la loro utilita'; creiamo un oggetto "moto", che conterra' dei valori per freni, km e luci
 moto: make object! [
  luci: "funzionano"
  freni: "a disco"
  km:  63000
  ]

ora possiamo esaminare l'oggetto moto con il comando '''probe''' o '''print''', che hanno risultati leggermente diversi:
 print moto
 probe moto

!!Usare un oggetto
Abbiamo creato l'oggetto moto, ora possiamo creare altri oggetti come moto, che abbiano proprio moto come padre:
 guzzi: make moto [  ]

in questa maniera l'oggetto ''guzzi'' avra' gli stessi valori dell'oggetto padre ''moto''.

Se invece facciamo cosi':
 honda: make moto [
    luci: "rotte"
    freni: "a tamburo"
    km: 25600
    ]

avremo un oggetto ''honda'' come il genitore ''moto'', ma con i valori di partenza diversi.

E' possibile alterare solo alcuni valori:
 kawasaki: make moto [ km:  500]

se volete vedere le differenze:
 print guzzi
 print honda
 print kawasaki


October 16, 2009, at 01:56 PM by Massimiliano Vessi -
Added lines 505-507:

!Oggetti
Gli oggetti sono come dei contenitori, molto comodi per raggruppare dati e funzioni.
October 14, 2009, at 11:46 PM by Massimiliano Vessi -
Changed line 29 from:
%lframe% http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'
to:
%lframe% width=200px http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'
October 14, 2009, at 11:44 PM by Massimiliano Vessi -
Changed line 29 from:
http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg
to:
%lframe% http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg |Siamo sempre di piu'
October 13, 2009, at 02:14 PM by Massimiliano Vessi -
Added lines 487-504:
!!Metterci anche una guida
Potete anche mettere una guida ad una funzione, aggiungendo delle stringhe di spiegazione per ogni parametro, potete anche mettere una stringa iniziale di descrizione. Questa guida apparira' con il comando ''help'':
 somma_tutti: func [
 "Una funaione per fare la somma e a media di numeri"
 a [block!] "La lista di numeri"
  /media "Fa anche la media"] [
    totale: 0
    foreach elemento a [
      totale: totale + elemento
      ]
    testo: ["La somma e':" totale]
    if media [ num_ele: length? a
      la_media: totale / num_ele
      append testo ["e la media e':" la_media]
      ]
    print remold testo
  ]
 help somma_tutti
October 13, 2009, at 02:09 PM by Massimiliano Vessi -
Changed lines 484-485 from:
  somma_tutti [ 1 2 3 4]
  somma_tutti/media [ 1 2 3 4]
to:
  somma_tutti [ 1 2 3 4 5]
  somma_tutti/media [ 1 2 3 4 5]
October 13, 2009, at 02:08 PM by Massimiliano Vessi -
Changed lines 475-476 from:
       totale: totale + 0
      testo: ["La somma e':" totale]
to:
       totale: totale + elemento
Changed lines 477-478 from:
   if media [ num_ele: lenght? a
to:
   testo: ["La somma e':" totale]
    if media [ num_ele: length
? a
October 13, 2009, at 02:05 PM by Massimiliano Vessi -
Added lines 429-433:
Cosa e' una funzione?

Una funzione e' una serie di comandi da poter richiamare liberamente. Le funzioni nascono per non dover riscrivere continuamente gli stessi comandi ed anche per aggiornare un programma facilmente. Immaginate di dover cambiare il modo di operare di un programma: se fosse stata scritta 100 volte la serie di comandi, dovreste riscriverla 100 volte; ma se 100 volte viene chiamata la funzione, basterà modificare la funzione e tutte le chiamate faranno la cosa giusta.

Changed lines 445-486 from:
E' possibile indicare ce valori sono accettati e se l'ambito delle variabili e locale o generale.
to:
E' possibile indicare ce valori sono accettati e se l'ambito delle variabili e locale o generale. Esempio
 a: "cane"
 esempio: func [ primo secondo /local a] [
    a: (primo + secondo) / 2
    print a
    ]
 esempio  3 5
 print a

se lo provate noterete che la variabile ''a'', non viene realmente alterata dalla funzione, perche' appena finisce la funzione ''a'' ritorna quella di prima.

Si puo' richiedere che i valori immessi rispettino certi criteri; ad esempio se sono interi, stringhe o altro:

 esempio: func [primo [integer! decimal!] secondo [integer! decimal!] ][
    print ( primo + secondo )]
 esempio 4 6
 esempio 4 $4

Qualunque funzione da l'ultimo valutazione come valore, oppure potere usare '''return'''; '''se non volete restituire nessun risultato, usate EXIT''':
 esempio: func [ a b] [ a + b]
 esempio 5 3
 esempio: func [a b] [return a + b]
 esempio 5 3
 esempio: func [a b] [exit]
 esempio 5 3

Potete anche inventarvi i vostri raffinamenti. Vediamo come funziona
 somma_tutti: func [ a [block!] /media ] [
    totale: 0
    foreach elemento a [
      totale: totale + 0
      testo: ["La somma e':" totale]
      ]
    if media [ num_ele: lenght? a
      la_media: totale / num_ele
      append testo ["e la media e':" la_media]
      ]
    print remold testo
  ]
  somma_tutti [ 1 2 3 4]
  somma_tutti/media [ 1 2 3 4]

October 13, 2009, at 02:30 AM by Massimiliano Vessi -
Changed lines 428-429 from:

to:
!Creare le proprie funzioni
E' possibile creare le proprie funzioni, nel programma le funzioni devono essere lette (messe prima) del punto in cui sono chiamate.
Per creare una funzione si usa il comando '''func''':
 prima_funzione: func [] [print "Fatto"]
 prima_funzione
Le prime parentesi quadre indicano gli argomenti da passare alla funzione (di solito dei valori):
 la_media: func [primo secondo][
    risultato: (primo + secondo) / 2
    return risultato
    ]
  print la_media 5 15

E' possibile indicare ce valori sono accettati e se l'ambito delle variabili e locale o generale.
October 12, 2009, at 03:37 AM by Massimiliano Vessi -
Changed line 414 from:
 none ;indicare il tipo di proxy altrimenti none
to:
 none ;indicare il tipo di proxy altrimenti none (generic, socks, socks4, socks5)
Added lines 422-428:


!!!Leggere
Basta:
 read pop://maxint:la_mia_password@pop.tiscali.it

October 12, 2009, at 03:28 AM by Massimiliano Vessi -
Added lines 419-421:
!!!Spedire
Facile, basta usare '''send''' (e' pieno di opzioni, studiatelo bene):
 send pippo@libero.it "Ciao"
October 12, 2009, at 03:25 AM by Massimiliano Vessi -
Added lines 404-418:

!!Email: POP e SMTP
Per leggere la posta ci si collega ai server POP, per inviare i messaggi ci si collega ai server SMTP; questo e' lo standard e Rebol e' gia' pronto all'uso. Basta usare il comando  '''set-net''' per impostare i dati dell'utente e poi il gioco e' fatto.

 set-net [
 maxint@tiscali.it  ; indirizzo email
 smtp.tiscali.it  ; server smtp
 pop.tiscali.it ; server pop
 none ; indicare il proxy di rete se c'e' altrimenti none
 none ; indicare la porta del proxy altrimenti none
 none ;indicare il tipo di proxy altrimenti none
 "maxint" ; indicare il nome utente
 "la mia password" ; indicare la password
 ]

October 12, 2009, at 03:17 AM by Massimiliano Vessi -
Changed line 401 from:
 write/binary ftp://max:la_mia_password@ftp.maxvessi.net/foto.jpg read/binary %foto.jpg
to:
 write/binary ftp://max:la_mia_password@ftp.maxvessi.net/archivio.zip read/binary %archivio.zip
October 12, 2009, at 03:15 AM by Massimiliano Vessi -
Added lines 383-403:
!Lavorare con internet

Rebol e' gia' pronto per leggere da internet, provate
 a: read http://www.rebol.com
 == {<html>
 <head>
 <META NAME="Description" CONTENT="REBOL: a Web 3.0 language
 and system based on new lightweight computing methods...

come potete vedere dall'esempio, Rebol ha letto da internet una pagina web e l'ha memorizzata nella variabile ''a''.

!!FTP
Se volete caricare o leggere file dal web dovete conoscere il linguaggio FTP, che e' lo standard per internet per caricare i file su un server.

Rebol e' gia' predisposto per leggere e scrivere su un server su internet, basta che si conoscano le credenziali per accedervi (user name, password). Ecco un esempio per leggere:
 read ftp://max:la_mia_password@ftp.maxvessi.net/lista_spesa.txt

Per scrivere basta:
 write/binary ftp://max:la_mia_password@ftp.maxvessi.net/foto.jpg read/binary %foto.jpg

usare il raffinamento '''binary''' e' sempre consigliato quando si tratta di file che non sono testo semplice (quasi sempre).
October 08, 2009, at 06:33 PM by Massimiliano Vessi -
Changed lines 7-9 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: [[mailto:maxint@tiscali.it | maxint@tiscali.it ]]
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo.
''In parole povere potete programmare in 5 minuti!''

Se volete scrivermi: [[mailto:maxint@tiscali.it | maxint@tiscali.it ]]
October 08, 2009, at 06:32 PM by Massimiliano Vessi -
Added lines 46-47:
Non e' necessario installare Rebol, e' un semplice eseguibile, ma se non siete pratici di programmazione, fate i seguenti passi.
October 08, 2009, at 01:46 PM by Massimiliano Vessi -
Added lines 495-498:

!!Ultima modifica
Permette di sapere l'ultima modifica ad un file:
 modified? %file.txt
October 08, 2009, at 01:44 PM by Massimiliano Vessi -
Changed line 460 from:
Fa immettere username e password, potete far apparrire lo username:
to:
Fa immettere username e password, potete far apparrire lo username con il raffinamento '''user''':
Changed lines 462-463 from:
 request-pass "Max"
to:
 request-pass/user "Max"
Added lines 465-471:

!!request-text
Chiede all'utente una stringa (es. parola o frase):

 request-text/title "Come ti chiami?"

Attach:req-text.jpg
October 08, 2009, at 01:40 PM by Massimiliano Vessi -
Added lines 458-464:

!!request-pas
Fa immettere username e password, potete far apparrire lo username:
 request-pass
 request-pass "Max"

Attach:req-pass.jpg
October 08, 2009, at 01:37 PM by Massimiliano Vessi -
Added lines 453-457:
!!request-list
Fa scegliere un elemento da una lista:
 request-list "Esempio" [ "Mario" 23  $2]

Attach:req-list.jpg
October 08, 2009, at 01:34 PM by Massimiliano Vessi -
Added lines 443-451:

!!request-file

Fa scegliere all'utente un file:

 request-file

Attach:req-file.jpg

October 08, 2009, at 01:31 PM by Massimiliano Vessi -
Changed line 440 from:
 request-download http://www.rebol.com/graphics/doc-bar.gif
to:
 request-download http://www.rebol.com/
October 08, 2009, at 01:30 PM by Massimiliano Vessi -
Added lines 436-442:

!!request-download
Mostra all'utente lo scaricamento di un file da internet, ma l'utente puo' interrompere il download in ogni momento:

 request-download http://www.rebol.com/graphics/doc-bar.gif

Attach:req-down.jpg
October 08, 2009, at 01:22 PM by Massimiliano Vessi -
Added lines 431-435:
!!request-dir
Permette di far scegliere all'utente una directory:
 directory: request-dir

Attach:req-dir.jpg
October 08, 2009, at 01:19 PM by Massimiliano Vessi -
Changed line 420 from:
Permette di far scegliere all'utente un colore
to:
Permette di far scegliere all'utente un colore, ovviamente restituisce una tripletta:
Added lines 424-430:

!!request-date
Permette di chiedere all'utente una data:
 data: request-date

Attach:req-date.jpg

October 08, 2009, at 01:16 PM by Massimiliano Vessi -
Added lines 418-424:

!!request-color
Permette di far scegliere all'utente un colore
 colore: request-color

Attach:request-color.jpg

October 08, 2009, at 01:15 PM by Massimiliano Vessi -
Added lines 412-417:
!!notify

Permette di far apparire un avviso:
 notify "Hai fatto un disastro!"

Attach:nofity.jpg
October 08, 2009, at 01:11 PM by Massimiliano Vessi -
Changed lines 396-397 from:
 confirm/with "Sei moro" ["SI" "No, sono biondo"]
to:
 confirm/with "Sei moro?" ["SI" "No, sono biondo"]
Added lines 400-410:
!!flash

Fa apparire una finestra di avviso e poi scompare con il comando '''unview'''. '''ATTENZIONE:''' dovete sempre usare unview per cancellarlo:
 flash "Sto contando fino a 6."
 wait 6
 unview
 f1: flash "Sto contando fino a 5."
 wait 5
 unview f1

Attach:flash.jpg
October 08, 2009, at 01:01 PM by Massimiliano Vessi -
Added lines 390-400:

!!confirm

Chiede di confermare una scelta a cui rispendere YES o NO; ritorna TREU o FALSE di default. Potete impostare anche le scritte dei pulsanti con la raffinazione '''with''':

 confirm "Sei biondo?"
 confirm/with "Sei moro" ["SI" "No, sono biondo"]

Attach:confirm.jpg

October 08, 2009, at 12:57 PM by Massimiliano Vessi -
Changed lines 385-389 from:
Manda un messagio ti attenzione
to:
Manda un messaggio di attenzione:

 alert "Stai per distruggere tutto!"

Attach:alert.jpg
October 08, 2009, at 12:31 PM by Massimiliano Vessi -
Added lines 378-385:


!Interfacce gia' pronte

In Rebol esistono delle interfacce gia' pronte per tutte quelle finestre utilizzate nella maggior parte dei programmi moderni: dagli avvisi alla richiesta dei file, alla richiesta del colore e cosi' via...
Ecco un elenco:
!!alert
Manda un messagio ti attenzione
September 30, 2009, at 06:30 PM by Massimiliano Vessi -
Changed line 603 from:
 view layout [ title "Esempio
to:
 view layout [ title "Esempio"
Changed lines 606-607 from:
       either led1/data = true [led1/data: false]  [led/data: true]
to:
       either led1/data = true [led1/data: false]  [led1/data: true]
        show led1
September 30, 2009, at 06:27 PM by Massimiliano Vessi -
Changed lines 592-610 from:
Potete mettere delle luci
to:
Potete mettere delle luci che cambiano colore a seconda dello stato del programma:

Attach:led.jpg

si invoca con '''led''':

 view layout [title "Esempio"
    led ]

di default led e' rosso, e '''led/data''' e' impostato a ''false''. Cambiando a il valore di led a ''true'' diventa verde. '''led/colors: [red green]''' imposta i colori. Traducendo in un esempio:

 view layout [ title "Esempio
    led1: led
    button "Cambia colore" [
        either led1/data = true [led1/data: false]  [led/data: true]
        ]
    ]

September 30, 2009, at 06:21 PM by Massimiliano Vessi -
Added lines 591-592:
!!Led
Potete mettere delle luci
September 29, 2009, at 12:32 PM by Massimiliano Vessi -
Changed line 414 from:
lamia password ;password di riconoscimento per il server stmp
to:
lamia_password ;password di riconoscimento per il server stmp
Added lines 420-429:

se il testo e' su piu' righe, la prima rappresenta l'oggetto del messaggio:
 send maxint@tiscali.it {Oggetto: Prova
 Ciao bello!}

altrimenti puo' essere piu' semplice usare la raffinazione '''subject''':

 send/subject maxint@tiscali.it "Ciao bello!"  "Oggetto: una semplice prova"

September 29, 2009, at 12:26 PM by Massimiliano Vessi -
Added lines 401-419:

!Inviare e ricevere email
Rebol ha due comandi: '''send''' e '''read''' per inviare e leggere le email.

Prima di tutto dobbiamo mettere i dati di connessione con il comando '''set-net''':
 set-net [
tec@rometec.it  ;indirizzo email del mittente
mailbus.fastweb.it ;server smtp
pop.rometec.it ;server pop
none ;eventuale proxy
none ;eventuale porta del proxy
none ;tipo di proxy tra: socks, socks4, sock5, generic
tec@rometec.it ;user di riconoscimento per il server smtp
lamia password ;password di riconoscimento per il server stmp
]

!!Inviare
A questo punto per inviare una email potete usare '''send'''
 send maxint@tiscali.it "Ciao bello!"
September 24, 2009, at 02:01 PM by Massimiliano Vessi -
Changed line 12 from:
>>lframe width=136px<<
to:
>>frame width=136px<<
September 24, 2009, at 02:01 PM by Massimiliano Vessi -
Added lines 36-37:

!Indice Guida
September 24, 2009, at 02:00 PM by Massimiliano Vessi -
Changed lines 20-22 from:
ecco una demo:

to:
!!!Ecco una demo:

Changed lines 25-27 from:
to:
!!!Utilizzatori nel mondo:

http://www4.clustrmaps.com/stats/maps-clusters/www.rebol.com-world.jpg
September 23, 2009, at 01:59 PM by Massimiliano Vessi -
Deleted lines 23-25:


(:includeSite http://www.maxvessi.net/rebsite/rebolvideo.html :)
September 23, 2009, at 01:58 PM by Massimiliano Vessi -
Added lines 21-24:


(:youtube -RVhBImcEAE:)

September 23, 2009, at 01:48 PM by Massimiliano Vessi -
Changed lines 22-26 from:
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>



Attach:rebol.png
to:
(:includeSite http://www.maxvessi.net/rebsite/rebolvideo.html :)

September 23, 2009, at 01:43 PM by Massimiliano Vessi -
Changed lines 20-22 from:


to:
ecco una demo:

<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-RVhBImcEAE&hl=it&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
September 18, 2009, at 05:40 PM by Massimiliano Vessi -
Changed line 47 from:
* digitate '''install'''
to:
* digitate '''install''' e premete invio
September 18, 2009, at 05:40 PM by Massimiliano Vessi -
Changed lines 45-46 from:
* create un qualsiasi file che finisca con l'estensione '''.R'''
* cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il '''rebview.exe''' che avete installato
to:
* Avviatelo
* Lanciate la console (icona sulla sinistra)
* digitate
'''install'''
September 17, 2009, at 12:17 PM by Massimiliano Vessi -
Added lines 451-453:
Altro esempio:
 do http://www.fys.ku.dk/~niclasen/rebol/space/ngc7635.r

September 17, 2009, at 12:13 PM by Massimiliano Vessi -
Added lines 108-114:

se si vuole prendere solo un valore della coppia e' semplicissimo, basta indicale '''/1''' o '''/x''' per il primo valore; oppure '''/2''' o '''/y''' per il secondo.

 >> a: 640x480
 == 640x480
 >> a/1
 == 640
September 17, 2009, at 11:44 AM by Massimiliano Vessi -
Changed lines 399-401 from:
! Interfacce

to:
! Interfacce (VID)

Changed line 633 from:
!Grafica 2D
to:
!Grafica 2D (DRAW)
September 17, 2009, at 11:44 AM by Massimiliano Vessi -
Added lines 637-643:
Per mettere un disegno bisogna mettere una '''box''' con l'effetto '''draw''' dove mettere il disegno, esempio:

 view layout [
  box effect [ draw [ arc 20x20 20x20 0 360 ] ]
  ]

Deleted lines 654-658:
Per mettere un disegno bisogna mettere una '''box''' con l'effetto '''draw''' dove mettere il disegno, esempio:

 view layout [
  box effect [ draw [ arc 20x20 20x20 0 360 ] ]
  ]
September 17, 2009, at 11:42 AM by Massimiliano Vessi -
Changed lines 637-646 from:
Il sistema di riferimento parte da in '''ALTO A SINISTRA''' e prosegue verso destra (x) e verso il basso (y)
to:
Il sistema di riferimento parte da in '''ALTO A SINISTRA''' e prosegue verso destra (x) e verso il basso (y), esempio:
 view layout [ box 100x100 effect [ draw [
arrow 1x0
line 5x5  90x5
line 5x5  5x90
text 90x5 "X"
text 10x80 "Y"
]]]

Attach:xy.jpg
September 17, 2009, at 11:32 AM by Massimiliano Vessi -
Changed line 407 from:
Negli esempi successivi useremo
to:
Esiste anche una piccola guida in inglese su [[http://www.rebol.com/docs/easy-vid.html]]
September 15, 2009, at 01:58 PM by Massimiliano Vessi -
Changed lines 135-136 from:
Codici di idcentificatione, basta anteporre il cancelletto:
to:
Codici di idcentificazione, basta anteporre il cancelletto:
Added lines 164-218:
!!Altri
Rebol interpreta tutto, ecco una lista di tutti i tipi che si ottiene digitando:
 help datatype!
  action!        datatype! action!
  any-block!      datatype! any-block!
  any-function!  datatype! any-function!
  any-string!    datatype! any-string!
  any-type!      datatype! any-type!
  any-word!      datatype! any-word!
  binary!        datatype! binary!
  bitset!        datatype! bitset!
  block!          datatype! block!
  char!          datatype! char!
  datatype!      datatype! datatype!
  date!          datatype! date!
  decimal!        datatype! decimal!
  email!          datatype! email!
  error!          datatype! error!
  event!          datatype! event!
  file!          datatype! file!
  function!      datatype! function!
  get-word!      datatype! get-word!
  hash!          datatype! hash!
  image!          datatype! image!
  integer!        datatype! integer!
  issue!          datatype! issue!
  library!        datatype! library!
  list!          datatype! list!
  lit-path!      datatype! lit-path!
  lit-word!      datatype! lit-word!
  logic!          datatype! logic!
  money!          datatype! money!
  native!        datatype! native!
  none!          datatype! none!
  number!        datatype! number!
  object!        datatype! object!
  op!            datatype! op!
  pair!          datatype! pair!
  paren!          datatype! paren!
  path!          datatype! path!
  port!          datatype! port!
  refinement!    datatype! refinement!
  routine!        datatype! routine!
  series!        datatype! series!
  set-path!      datatype! set-path!
  set-word!      datatype! set-word!
  string!        datatype! string!
  struct!        datatype! struct!
  symbol!        datatype! symbol!
  tag!            datatype! tag!
  time!          datatype! time!
  tuple!          datatype! tuple!
  unset!          datatype! unset!
  url!            datatype! url!
  word!          datatype! word!
September 04, 2009, at 05:25 PM by Massimiliano Vessi -
Added lines 1-2:
Attach:rebol.png
September 04, 2009, at 05:21 PM by Massimiliano Vessi -
Changed lines 8-9 from:
Se volete piu' informazione esiste:
to:
Se volete piu' informazioni esiste:
Deleted lines 13-18:



%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
%lframe%'''REBOL italiano'''
%lframe%[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
September 04, 2009, at 05:20 PM by Massimiliano Vessi -
Changed lines 10-11 from:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- '''REBOL italiano'''
[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
to:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | '''REBOL italiano'''
[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
September 04, 2009, at 05:20 PM by Massimiliano Vessi -
Changed lines 10-11 from:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- '''REBOL italiano''' \\ [[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
to:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- '''REBOL italiano'''
[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
September 04, 2009, at 05:19 PM by Massimiliano Vessi -
Changed line 10 from:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- ''REBOL italiano'''[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
to:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- '''REBOL italiano''' \\ [[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
September 04, 2009, at 05:19 PM by Massimiliano Vessi -
Changed lines 9-10 from:
>>lframe<<
http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- ''REBOL italiano'''[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
to:
>>lframe width=136px<<
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- ''REBOL italiano'''[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
September 04, 2009, at 05:18 PM by Massimiliano Vessi -
Added lines 9-13:
>>lframe<<
http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] | [-- ''REBOL italiano'''[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]] --]
>><<

September 04, 2009, at 05:07 PM by Massimiliano Vessi -
Changed lines 10-12 from:
%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] \\ '''REBOL italiano''' \\ [[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
to:
%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
%lframe%'''REBOL italiano'''
%lframe%
[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
September 04, 2009, at 05:06 PM by Massimiliano Vessi -
Changed line 10 from:
%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] \\ te% '''REBOL italiano''' \\ [[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
to:
%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] \\ '''REBOL italiano''' \\ [[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
September 04, 2009, at 05:06 PM by Massimiliano Vessi -
Changed lines 10-13 from:
%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
%bgcolor=white%  '''REBOL italiano''' \\
[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
%%
to:
%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]] \\ te%  '''REBOL italiano''' \\ [[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
September 04, 2009, at 05:06 PM by Massimiliano Vessi -
Changed line 10 from:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
to:
%lframe%[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
September 04, 2009, at 05:04 PM by Massimiliano Vessi -
Changed line 11 from:
%bgcolor=white%  REBOL italiano \\
to:
%bgcolor=white%  '''REBOL italiano''' \\
September 04, 2009, at 05:02 PM by Massimiliano Vessi -
Changed line 11 from:
%bgcolor=white  REBOL italiano
to:
%bgcolor=white%  REBOL italiano \\
September 04, 2009, at 05:01 PM by Massimiliano Vessi -
Changed line 11 from:
REBOL italiano
to:
%bgcolor=white  REBOL italiano
Changed lines 13-17 from:

d style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr>
</table>
=]

to:
%%
September 04, 2009, at 02:37 PM by Massimiliano Vessi -
Changed line 10 from:
[[href="http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
to:
[[http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
Changed lines 14-23 from:
[=
<table style="background-color: #fff; padding: 5px;" cellspacing=0>
  <tr><td>
  <img src="http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif"
        height=30 width=136 alt="Google Gruppi">
  </td></tr>
  <tr><td style="padding-left: 5px;font-size: 125%">
  <b>REBOL italiano</b>
  </td></tr>
  <tr><td
style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr>
to:
d style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr>
September 04, 2009, at 02:36 PM by Massimiliano Vessi -
Added lines 13-25:

[=
<table style="background-color: #fff; padding: 5px;" cellspacing=0>
  <tr><td>
  <img src="http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif"
        height=30 width=136 alt="Google Gruppi">
  </td></tr>
  <tr><td style="padding-left: 5px;font-size: 125%">
  <b>REBOL italiano</b>
  </td></tr>
  <tr><td style="padding-left: 5px"> <a href="http://groups.google.it/group/rebol-italiano">Visita questo gruppo</a> </td></tr>
</table>
=]
September 04, 2009, at 02:34 PM by Massimiliano Vessi -
Changed lines 10-12 from:
to:
[[href="http://groups.google.it/group/rebol-italiano|http://groups.google.it/intl/it/images/logos/groups_logo_sm.gif]]
REBOL italiano
[[http://groups.google.it/group/rebol-italiano|Visita questo gruppo]]
September 04, 2009, at 02:30 PM by Massimiliano Vessi -
Added lines 7-12:

Se volete piu' informazione esiste:



Added lines 14-17:



August 26, 2009, at 09:11 AM by Massimiliano Vessi -
Added lines 36-42:

!Programmi per scrivere i programmi (editor)
Per scrivere un programma basta un qualunque editor di testo come il '''blocco note''' di Windows o '''kate''', '''gedit''' su linux.
I migliori comunque sono:
* '''SciTE''': http://www.scintilla.org/SciTE.html (Linux, Windows)
* '''Crimson editor''': http://www.crimsoneditor.com/ (Windows)

August 24, 2009, at 03:41 PM by Massimiliano Vessi -
Changed line 532 from:
       a/text: "BRAVO!
to:
       a/text: "BRAVO!"
Changed lines 542-543 from:
       a/text: "BRAVO!
      b/text: "BRAVO!
to:
       a/text: "BRAVO!"
      b/text: "BRAVO!"
August 24, 2009, at 03:41 PM by Massimiliano Vessi -
Added lines 522-547:

!! Modificare gli elementi
E' sempre possibile modificare un elemento grafico anche dopo che e' apparso sullo schermo, basta:
*assegnargli una variabile
* modificare una sua caratteristica
* dire di far vedere la variazione (comando '''show''')
per esempio il testo di un pulsante:

 view layout [
    a: button "clicca qui" [
      a/text: "BRAVO!
      show a
      ]
    ]

E' possibile attivare piu' oggetti:

 view layout [
    b: title "Esempio"
    a: button "clicca qui" [
      a/text: "BRAVO!
      b/text: "BRAVO!
      show [a b]
      ]
    ]
   
August 24, 2009, at 12:43 PM by Massimiliano Vessi -
Changed line 5 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: [[maxint@tiscali.it]]
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: [[mailto:maxint@tiscali.it | maxint@tiscali.it ]]
August 24, 2009, at 12:42 PM by Massimiliano Vessi -
Changed line 5 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: [[mailto:maxint@tiscali.it]]
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: [[maxint@tiscali.it]]
August 24, 2009, at 12:42 PM by Massimiliano Vessi -
Changed line 5 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: [[mailto:maxint@tiscali.it]]
August 24, 2009, at 12:42 PM by Massimiliano Vessi -
Changed line 5 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo.
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo. Se volete scrivermi: maxint@tiscali.it
August 24, 2009, at 12:41 PM by Massimiliano Vessi -
Changed lines 486-495 from:
to:
Se volete modificare successivamente una lista basta cambiare il valore dell'elemento '''data''' di questo oggetto, provate il seguente:

 a: [ "Acqua" "Fuoco" "Vento" "Terra"]
 view layout [
    bb: text-list data a
    button "Clicca!" [
      bb/data: [ "Sale" "Pepe" "olio" "origano"]
      show bb
      ]
    ]
August 24, 2009, at 12:36 PM by Massimiliano Vessi -
Added lines 172-184:

!! Inserire dati nei blocchi

Vi sono molti modi per inserire dei dati nei blocchi:

!!!APPEND

'''append''' inserisce i dati alla fine del blocco:

 a:  ["Buon"]
 append a "anno!"
 >> ["Buon" "anno!"]

August 24, 2009, at 12:10 PM by Massimiliano Vessi -
Changed line 464 from:
attach:textlist.jpg
to:
Attach:textlist.jpg
August 24, 2009, at 12:08 PM by Massimiliano Vessi -
Added lines 456-473:


!! Liste di testo

Un lista di testo e una colonna in cui mettere delle righe da cui scegliere, ecco un esempio:

 view layout [ text-list "Acqua" "Fuoco" "Vento" "Terra"]

attach:textlist.jpg

Come vedete e' molto semplice scrivere delle liste.

Ma se avete da lavorare con molti dati, è meglio usare la parola '''data''', in modo da poter prendere i valori da altre variabili, esempio:

 a: [ "Acqua" "Fuoco" "Vento" "Terra"]
 view layout [ text-list data a ]

July 27, 2009, at 02:12 PM by Massimiliano Vessi -
Changed line 492 from:
Per la grafica 2D conviene usare un altro dialetto di Rebol il '''DRAW'''; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.
to:
Per la grafica 2D conviene usare un altro dialetto di Rebol il '''DRAW'''; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi' di solito basta. Un elenco delle funzioni di DRAW lo trovate qui: http://www.rebol.com/docs/draw-ref.html vi consiglio fortemente di andarlo a leggere.
July 27, 2009, at 02:07 PM by Massimiliano Vessi -
Changed line 269 from:
!Funzioni
to:
!Tutte le funzioni
July 27, 2009, at 02:07 PM by Massimiliano Vessi -
Added lines 268-275:

!Funzioni

L'elenco delle funzioni pronte in Rebol lo potete trovare a questo indirizzo:

http://www.rebol.com/docs/dictionary.html

Mi limitero' ad illustrare solo le piu' utili.
July 27, 2009, at 02:04 PM by Massimiliano Vessi -
Changed line 273 from:
Con la funzione '''read''' leggiamo direttamente cio' che ci serve:
to:
Con la funzione '''read''' leggiamo direttamente cio' che ci serve (file, pagine web, ecc.):
July 24, 2009, at 04:53 PM by Massimiliano Vessi -
Changed line 5 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica2d, grafica 3D, tutto con il minimo sforzo.
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica 2D, grafica 3D, tutto con il minimo sforzo.
July 10, 2009, at 05:51 PM by Massimiliano Vessi -
Changed lines 22-24 from:
Scaricate '''rebview''' e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.

'''LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPOERTATI'''
to:
Scaricate '''rebview''' e avviatelo, avrete a disposizione programmi, demo, e altre cose per capire se Rebol fa per voi.

'''LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPORTATI'''
July 10, 2009, at 05:50 PM by Massimiliano Vessi -
July 10, 2009, at 05:47 PM by Massimiliano Vessi -
Added lines 509-539:

!! Arrow (Frecce)

Le frecce si possono mettere a molti tipi di geometrie  di DRAW (linee, archi, box, polilinee), sinossi:


||border=1
|| !Argomento || !Tipo || !Descrizione ||
|| inizio x fine|| coppia || Una qualunque combinazione di 0 (nulla) 1 (punta) 2 (coda) ||

Esempio:

 view layout [
  box 500x500 effect [
  draw [
  pen yellow
  arrow 1x2  line 20x20 100x100
  pen blue
  arrow 1x2  curve 50x50 300x50 50x300 300x300
  pen green
  arrow 1x2  spline 3 30x30 200x70 150x200 70x300 80x300 200x200
  pen black
  arrow 1x2  spline closed 3 20x20 250x70 170x200 400x300 80x300 180x200
  pen white
  arrow 1x2  polygon 40x40 200x90 150x220 50x320
  pen navy
  arrow 1x2  box 400x400 330x330
  ]
  ]
 ]

July 10, 2009, at 05:18 PM by Massimiliano Vessi -
Changed line 491 from:
  box effect [ draw [ arc 20x20 20x20x 0 360 ] ]
to:
  box effect [ draw [ arc 20x20 20x20 0 360 ] ]
Added lines 499-508:
||border=1
|| !Argomento || !Tipo || !Descrizione ||
|| Centro || Coppia || Centro della ellissi ||
|| Raggio || Coppia || Raggio dei due assi delle ellissi ||
|| Angolo d'inizio || decimale || Angolo d'inizio dell'arco (opzionale) ||
|| Angolo finale || decimale || Angolo finale dell'arco (opzionale) ||
|| Chiuso || parola || '''closed''' Parola opzionale per disegnare anche i raggi e chiudere gli archi aperti ||

Esempio:
  view layout [ box effect [ draw [ arc 40x40 40x20 0 150 closed ] ] ]
July 10, 2009, at 05:07 PM by Massimiliano Vessi -
Changed lines 484-498 from:
Per la grafica 2D conviene usare un altro dialetto di Rebol il '''DRAW'''; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.
to:
Per la grafica 2D conviene usare un altro dialetto di Rebol il '''DRAW'''; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.

Il sistema di riferimento parte da in '''ALTO A SINISTRA''' e prosegue verso destra (x) e verso il basso (y)

Per mettere un disegno bisogna mettere una '''box''' con l'effetto '''draw''' dove mettere il disegno, esempio:

 view layout [
  box effect [ draw [ arc 20x20 20x20x 0 360 ] ]
  ]


!!Arc (ellissi)

Il comando '''ARC'' serve per fare archi, ellissi e circonferenze. Sinossi:

July 10, 2009, at 03:41 PM by Massimiliano Vessi -
Changed lines 307-310 from:
to:
Il linguaggio per le interfacce puo' essere molto semplice se si usa un dialetto di Rebol il '''VID''' (sempre gia' incluso in Rebol), il VID sono tutta una serie di comandi che permettono di scrivere velocemente delle interfacce. Volendo, pero', e' possibile andare piu' a fondo del linguaggio delle interfacce e non usare il VID.

Negli esempi successivi useremo

Changed lines 482-484 from:
!
to:
!Grafica 2D

Per la grafica 2D conviene usare un altro dialetto di Rebol il '''DRAW'''; anche in questo caso possiamo andare piu' a fondo del draw, ma già cosi basta.
July 10, 2009, at 03:10 PM by Massimiliano Vessi -
July 10, 2009, at 03:01 PM by Massimiliano Vessi -
Changed lines 5-7 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''. Grazie a Rebol potrete fare anche grafica2d, grafica 3D, tutto con il minimo sforzo.

Rebol significa '''RIVOLUZIONE'''.
July 10, 2009, at 03:00 PM by Massimiliano Vessi -
Changed lines 299-302 from:
! GRAFICA!


In Rebol fare programmi grafici è semplicissimo e permette di ottenere risultati strabilianti in breve tempo.
to:
! Interfacce


In Rebol fare programmi con interfacce grafiche è semplicissimo e permette di ottenere risultati strabilianti in breve tempo.
Changed line 477 from:
TOOL/Vidstyletree
to:
!
June 19, 2009, at 01:56 PM by Massimiliano Vessi -
Changed lines 403-405 from:
view layout [
to:
Ecco un esempio con un la maggior parte degli oggetti che si possono mettere in una finestra:

 
view layout [
Changed line 429 from:
]
to:
 ]
June 19, 2009, at 01:54 PM by Massimiliano Vessi -
Changed line 429 from:
Attach:altriesempipulsanti.jpg
to:
Attach:altriesempipulsanti2.jpg
June 19, 2009, at 01:51 PM by Massimiliano Vessi -
Added lines 400-430:

!! Altri esempi

view layout [
    h1 "Altri esempi:"
    box red 500x2
    text "Ci sono piu' di 40 oggetti da poter utilizzare in Rebol"
    bar: progress
    slider 200x16 [bar/data: value show bar]
    area "Scrivi qui"
    drop-down "Primo" "Secondo" "Terzo"
    text-list 60x60 "uno" "due" "tre"
    across
    toggle "Click" "Here"
    rotary "Click" "Again" "And Again"
    choice "Choose" "Item 1" "Item 2" "Item 3" [alert value]
    radio radio radio
    led
    return
    arrow
    arrow left
    arrow right
    arrow down
    return
    field "oppure qui.."
    return
    image logo.gif
]

Attach:altriesempipulsanti.jpg

June 19, 2009, at 01:18 PM by Massimiliano Vessi -
Added lines 21-24:

'''LA VERSIONE DI REBOL DA SCARICARE E' LA 2.7.X, LA VERSIONE 3 E' ANCORA IN FASE DI TESTING E NON FUNZIONA CON GLI ESEMPI RIPOERTATI'''

April 27, 2009, at 09:16 PM by Massimiliano Vessi -
Changed lines 269-270 from:
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
to:
 == {<html><head><meta http-equiv="content-type" content="text/html;
 charset=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
Changed lines 272-273 from:
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
to:
 == {<html><head><meta http-equiv="content-type" content="text/html;
 charset=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
April 27, 2009, at 09:14 PM by Massimiliano Vessi -
Changed line 434 from:
   anim  rate 10 frames  [ %bay.gif  %rebologo2.gif]  ]
to:
   anim  rate 10 frames  [ %salto.jpg %ciccio.jpg  %rebologo2.gif]  ]
April 27, 2009, at 09:13 PM by Massimiliano Vessi -
Changed lines 434-435 from:
   anim  rate 10 frames  [ %bay.jpg  %rebologo2.gif]  ]
to:
   anim  rate 10 frames  [ %bay.gif  %rebologo2.gif]  ]
Changed line 438 from:
TOOL/Vidstyletree
to:
TOOL/Vidstyletree
February 04, 2009, at 08:02 PM by Massimiliano Vessi -
Changed lines 436-438 from:
Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.
to:
Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.

TOOL/Vidstyletree
February 03, 2009, at 03:20 PM by Massimiliano Vessi -
Changed lines 429-436 from:
  view layout [ button "Esempio." [view layout [ text "Ciao"]]]
to:
  view layout [ button "Esempio." [view layout [ text "Ciao"]]]

!!Animazioni
Potete creare molto facilmente delle animazioni con il comando '''anim''', basta avere delle immagini da inserire:
 view layout [ 
    anim  rate 10 frames  [ %bay.jpg  %rebologo2.gif]  ]

Rebol accetta qualsiasi formato immagine (jpg, png, gif), ma non utilizzate gif animate con questo comando.
February 03, 2009, at 03:16 PM by Massimiliano Vessi -
Changed lines 411-429 from:
 view/title layout [ text "Il titolo della finestra e' demo." ] "demo"
to:
 view/title layout [ text "Il titolo della finestra e' demo." ] "demo"

!!Aprire una nuova finestra

Per aprire una nuova finestra basta usa '''view/new'''
 Rebol [ Title: "Esempio"]
 view layout [ button "info" [ view/new layout [text "Finestra con titolo Esempio"] ]
              button "info" [ view/new/title layout [text "Finestra con titolo Info"] "Info" ]
              ]
!!Chiudere una finestra
Per chiudere una finestra basta usare il comando '''unview'''
 view layout [ button "info" [ view/new layout [button "Chiudi" [unview]]
                            ]
            ]
Potete anche chiudere un'altra finestra, basta mettere il nome del layout che volete chiudere dopo il comando '''unview'''.

!!Azioni
Ogni elemento grafico che potete usare ha la possibilità di attivare un'azione, basta mettere un paio di parentesi quadre dopo l'elemento.
  view layout [ button "Esempio." [view layout [ text "Ciao"]]]
February 03, 2009, at 03:02 PM by Massimiliano Vessi -
Added lines 406-411:
!!Titolo della finestra
Il titolo della finestra e' impostato da Rebol come il titolo dello script, ma potete usare la funzione '''view/title''' per impostarlo voi:

 Rebol [ Title: "Esempio"]
 view layout [ text "Il titolo della finestra e' Esempio." ]
 view/title layout [ text "Il titolo della finestra e' demo." ] "demo"
January 29, 2009, at 03:08 PM by Massimiliano Vessi -
Changed line 37 from:
[@
to:
Changed lines 40-41 from:
@]
to:

January 29, 2009, at 03:07 PM by Massimiliano Vessi -
Deleted lines 35-36:
%apply=pre color=blue%
Changed line 37 from:
to:
[@
Changed lines 40-41 from:

to:
@]
January 29, 2009, at 11:13 AM by Massimiliano Vessi -
Changed lines 7-8 from:
%apply=pre color=blue%
to:

Added lines 36-37:
%apply=pre color=blue%
January 29, 2009, at 11:12 AM by Massimiliano Vessi -
Changed lines 7-8 from:
to:
%apply=pre color=blue%
January 08, 2009, at 03:52 PM by Massimiliano Vessi -
Changed line 330 from:
Attach:http://maxvex.wikispaces.com/file/view/emailclient.jpg
to:
http://maxvex.wikispaces.com/file/view/emailclient.jpg
Changed lines 390-392 from:

Attach:
http://maxvex.wikispaces.com/file/view/testi.jpg
to:
http://maxvex.wikispaces.com/file/view/testi.jpg
January 08, 2009, at 03:51 PM by Massimiliano Vessi -
Changed lines 398-399 from:
Per prendere del testo basta impostare una variabile con il tipo di input preferito '''field''' singola riga o '''area''' per più righe: \\
to:
Per prendere del testo basta impostare una variabile con il tipo di input preferito '''field''' singola riga o '''area''' per più righe:
January 08, 2009, at 03:50 PM by Massimiliano Vessi -
Changed lines 292-294 from:


to:
! GRAFICA!


In Rebol fare programmi grafici è semplicissimo e permette di ottenere risultati strabilianti in breve tempo.
In Rebol tutti gli elementi grafici sono contenuti in '''facce'''; ogni faccia si può immaginare come un rettangolo con tutta una serie di proprietà (colore, bordo, immagine contenuta, font dei caratteri e molto altro ancora...).


!! Primo esempio



 view layout [
  across
  label italic font [ color: brick ] "To:"
  tab
  inp-to: field
  return

  label italic font [ color: brick ] "Subject:"
  tab
  inp-subj: field
  return

  inp-text: area
  return

  button "Send" [
  foreach addr parse inp-to/text ",;" [
    send to-email addr
    rejoin [inp-subj/text newline inp-text/text]
  ]
  quit
  ]
 ]


Ecco cosa esce fuori:
 
Attach:http://maxvex.wikispaces.com/file/view/emailclient.jpg
 
E' un programma per scrivere email. Esiste un altro linguaggio che permette cosi' tanto con cosi' poco? NO.
 

!! Da dove cominciare


Per fare programmi grafici bisogna usare la funzione '''view layout []'''.
All'interno di questa funzione vanno messe le varie *facce*.
 

!! Posizione

Esistono 2 possibili posizionamenti, che possono essere anche alternati, '''across''' e '''below'''; per ogni nuova riga o colonna usare la parole '''return'''. Se non viene scritto nulla si sottointende '''below''':

 view layout [
  across
  text "a1"
  text "a2"
  text "a3"
  return
  text "aA"
  text "aB"
  text "aC"
  below
  text "b1"
  text "b2"
  text "b3"
  return
  text "bA"
  text "bB"
  text "bC"


Provate a vedere le differenze cambiando l'ordine delle parole.

!! Testi

Per far apparire del testo dentro una finestra esistono tante possibilità, come l'HTML: \\


 view layout [
  title "Titolo"
  text "normal text"
  h1 "Titolo 1"
  h2 "Titolo 2"
  h3 "Titolo 3"
  h4 "Titolo 4"
  h5 "Titolo 5"
  code "Codice programmi"
  banner "Banner"
  vtext "Video text"
  vh1 "Video Titolo 1"
  vh2 "Video Titolo 2"
  vh3 "Video Titolo 3"
  vh4 "Video Titolo 4"
  label "etichetta"
 ]


Attach:http://maxvex.wikispaces.com/file/view/testi.jpg

Se preferiti colori diversi da quelli di default, si possono decidere nella massima libertà. \\


!! Input di testo

Per prendere del testo basta impostare una variabile con il tipo di input preferito '''field''' singola riga o '''area''' per più righe: \\

 view layout [
  campo: field
  areatesto: area
 ]


December 23, 2008, at 06:49 PM by Massimiliano Vessi -
Changed line 262 from:
!Input
to:
!Input / Output
Added lines 279-282:
!!Write
'''write''' scrive in un file i dati:
 >> write %./prova.txt  "Ciao"

December 23, 2008, at 06:29 PM by Massimiliano Vessi -
Changed lines 262-290 from:
to:
!Input
Ci sono vari modi per prendere dei dati ma sono tutti estremamente semplici.

!!Read
Con la funzione '''read''' leggiamo direttamente cio' che ci serve:
 >> read http://www.google.it
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...
 >> a: read http://www.google.it
 == {<html><head><meta http-equiv="content-type" content="text/html; chars et=ISO-8859-1"><title>Google</title><style>body,td,a,p,.h{...

!!Ask
Con la funzione '''ask''' chiediamo via terminale qualcosa ad un utente:
 >> pass: ask "Nome in codice?"

!!Input
'''input''' è come '''ask''' ma non chiede, aspetta l'utente che digiti qualcosa e basta.

!ESERCIZI
Ecco degli esercizi per capire se si è appreso i concetti fino a qui esposti:
# Salvare il contenuto della pagina [[http://www.rebol.com]] in un file chiamato ''rebol.html''
# Scrivere un programma che chieda all'utente di fornire 3 numeri e far indicare al programma quale sia il piu' alto.
# Fare un programma che chieda all'utente continuamente un numero, e stampi la media di tutti i numeri inseriti fino a quel momento.
# Come l'esercizio precedente ma per un gruppo di numeri arbitrari, deciso volta per volta dall'utente (per 5 numeri, per 3, per 12...)
# Calcolare il numero di giorni dal proprio compleanno.
# Modifica in ROT-13 di un testo, in entrambi i sensi.



December 23, 2008, at 06:11 PM by Massimiliano Vessi -
Added lines 218-230:

!!Switch
Il comando '''switch''' permette di scegliere fra varie possibilità, oppure un caso che non rientra in nessuno di essi; dopo il comando si mette la variabile e poi il blocco dei vari casi della variabile e per ultimo il caso di default:
 >>a: 3
 ==3
 switch/default a [
 1 [print "uno"]
 3 [print "tre"]
 ] [print "boh"]
 ==tre


December 23, 2008, at 05:34 PM by Massimiliano Vessi -
Changed lines 8-9 from:

to:
Attach:rebol.png
December 19, 2008, at 04:47 PM by Massimiliano Vessi -
Deleted line 48:
[[code]]
December 19, 2008, at 04:22 PM by Massimiliano Vessi -
Changed line 204 from:
!Forever
to:
!!Forever
December 19, 2008, at 04:21 PM by Massimiliano Vessi -
Changed line 17 from:
[[toc]]
to:
(:toc:)
December 19, 2008, at 04:21 PM by Massimiliano Vessi -
Changed lines 13-16 from:
* **GRATIS**: potete scaricare Rebol (meno di 1 MB) dal sito [[http://www.rebol.com/|http://www.rebol.com]] per far girare tutti i programmi
* **Multipiattaforma**: funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
* **Compatto**: con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
* **Interpretato**: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
to:
* '''GRATIS''': potete scaricare Rebol (meno di 1 MB) dal sito [[http://www.rebol.com/|http://www.rebol.com]] per far girare tutti i programmi
* '''Multipiattaforma''': funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
* '''Compatto''': con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
* '''Interpretato''': non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
Changed lines 18-31 from:
=Prova=
Scaricate **rebview** e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.
=Installazione=
==Windows==

* Scaricate **rebview.exe**
*
create un qualsiasi file che finisca con l'estensione **.R**
*
cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il **rebview.exe** che avete installato
==Linux==
* Installate **rebview** in **/usr/bin/**
*
per avviare un programma basta lanciare **rebview nomeprogramma.r**
*
oppure aggiungere alla prima riga del programma con **#!/usr/bin/rebview**
=
Tipi di dati=
Rebol
ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che **automaticamente** operera' correttamente su di loro (somma, sottrazione, ecc.). L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione //type?// ci dice di che tipo sia il dato.
==Denaro==
to:
!Prova
Scaricate '''rebview''' e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.
!Installazione
!!Windows
* Scaricate '''
rebview.exe'''
* create un qualsiasi file che finisca con l'estensione '''.R'''
* cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il '''rebview.exe''' che avete installato
!!Linux
* Installate '''rebview''' in '''/usr/bin/'''
* per avviare un programma basta lanciare '''rebview nomeprogramma.r'''
* oppure aggiungere alla prima riga del programma con '''#!/usr/bin/rebview'''
!
Tipi di dati
Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che '''automaticamente''' operera' correttamente su di loro (somma, sottrazione, ecc.). L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione //type?// ci dice di che tipo sia il dato.
!!Denaro
Deleted line 32:
[[code]]
Deleted line 34:
[[code]]
Changed line 36 from:
[[code]]
to:
Changed line 40 from:
[[code]]
to:
Changed line 42 from:
[[code]]
to:
Added lines 46-48:

!!Interi
Sono numeri interi:
Deleted lines 49-51:
==Interi==
Sono numeri interi:
[[code]]
Changed lines 53-54 from:
[[code]]
==Decimali==
to:

!!Decimali
Changed line 56 from:
[[code]]
to:
Changed lines 60-61 from:
[[code]]
==Stringhe==
to:

!!Stringhe
Changed line 63 from:
[[code]]
to:
Changed lines 67-68 from:
[[code]]
==Tempo==
to:

!!Tempo
Changed lines 70-75 from:
[[code]]
>> type? 15:32:01
== time!
[[code]]

==Coppie==
to:

 >> type? 15:32:01
 == time!


!!Coppie
Changed lines 77-82 from:
[[code]]
>> type? 640x480
== pair!
[[code]]

==Caratteri==
to:

 >> type? 640x480
 == pair!


!!Caratteri
Changed lines 84-90 from:
[[code]]
>> type? #"D"
== char!
[[code]]


==Bytes==
to:

 >> type? #"D"
 == char!



!!Bytes
Changed lines 92-101 from:
[[code]]
>> type? #{42652061205245424F4C}
== binary!

>> type? 64#{UkVCT0wgUm9ja3Mh}
== binary!

[[code]]

==Email==
to:

 >> type? #{42652061205245424F4C}
 == binary!
 >> type? 64#{UkVCT0wgUm9ja3Mh}
 == binary!



!!Email
Changed lines 102-106 from:
[[code]]
>> type? maxint@tiscali.it
== email!
[[code]]
==Identificativi==
to:

 >> type? maxint@tiscali.it
 == email!

!!Identificativi
Changed lines 108-112 from:
[[code]]
>> type? #0000-1234-56EV-989
== issue!
[[code]]
==Tag==
to:

 >> type? #0000-1234-56EV-989
 == issue!

!!Tag
Changed lines 114-118 from:
[[code]]
>> type? <img src="cover.png">
== tag!
[[code]]
==
Percorsi file==
to:

 >> type? <img src="cover.png">
 == tag!

!!Percorsi file
Changed lines 120-124 from:
[[code]]
>> type? %/c/rebol/rebol.exe
== file!
[[code]]
==URL==
to:

 >> type? %/c/rebol/rebol.exe
 == file!

!!URL
Changed lines 126-130 from:
[[code]]
>> type? http://maxint.dynalias.org
== url!
[[code]]
==Blocco==
to:

 >> type? http://maxint.dynalias.org
 == url!

!!Blocco
Changed line 132 from:
[[code]]
to:
Changed lines 135-138 from:
[[code]]


=Variabili=
to:



!Variabili
Changed lines 140-154 from:
[[code]]
>> melo: 12
== 12
>> melo: melo + 2
== 14
>> melo: "Apriti sesamo"
== "Apriti sesamo"
[[code]]
Per stampare una variabile basta usare il comando **print**:
[[code]]
>>print melo
== "Apriti sesamo"
[[code]]

=
I blocchi=
to:

 >> melo: 12
 == 12
 >> melo: melo + 2
 == 14
 >> melo: "Apriti sesamo"
 == "Apriti sesamo"

Per stampare una variabile basta usare il comando '''print''':

 >>print melo
 == "Apriti sesamo"

!I blocchi
Changed lines 156-168 from:
[[code]]
>> prova: [10 [5x3  $4] "Ciccio"  now/date]
== [10 [5x3  $4.00] "Ciccio"  now/date]
[[code]]
La funzione **now/date** non è interpretata. Se si usa la funzione **reduce** viene interpretata:
[[code]]
>> prova: reduce [10 [5x3  $4] "Ciccio"  now/date]
== [10 [5x3 $4.00] "Ciccio" 26-Nov-2008]
[[code]]
**
ATTENZIONE** Se il blocco contiene altri blocchi, i blocchi interni non sono valutati.

=Scelte e cicli=
==IF==
to:

 >> prova: [10 [5x3  $4] "Ciccio"  now/date]
 == [10 [5x3  $4.00] "Ciccio"  now/date]

La funzione '''now/date''' non è interpretata. Se si usa la funzione '''reduce''' viene interpretata:

 >> prova: reduce [10 [5x3  $4] "Ciccio"  now/date]
 == [10 [5x3 $4.00] "Ciccio" 26-Nov-2008]

'''ATTENZIONE''' Se il blocco contiene altri blocchi, i blocchi interni non sono valutati.

!Scelte e cicli
!!IF
Changed lines 170-173 from:
[[code]]
>> a: 1
>> if a = 0 [ "zero" ]
>> if a = 1 [ "uno" ]
to:

 >> a: 1
 >> if a = 0 [ "zero" ]
 >> if a = 1 [ "uno" ]
Changed lines 175-194 from:
[[code]]
==
While==
La
funzione **while** serve a utilizzare più condizioni per decidere se fare un'azione e/o la durata:
[[code]]
>>a: 0
>>b: 0
>> while [ a = 0  b < 10 ] [ print b  b: b + 1]
0
1
2
3
4
5
6
7
8
9
== 10
[[code]]
==loop==
to:

!!While
La funzione '''while''' serve a utilizzare più condizioni per decidere se fare un'azione e/o la durata:

 >>a: 0
 >>b: 0
 >> while [ a = 0  b < 10 ] [ print b  b: b + 1]
 0
 1
 2
 3
 4
 5
 6
 7 
 
8
 9
 == 10

!!loop
Changed lines 196-230 from:
[[code]]
>>loop 5 [print "
Ciao"]
Ciao
Ciao
Ciao
Ciao
Ciao
[[code]]
==
Forever==
Il
comando **forever** ripete un ciclo finche' non si da' il comando **break**:
[[code]]
>>a: 0
>>forever [ a: a + 1  print a  if a = 10 [ break] ]
1
2
3
4
5
6
7
8
9
10
[[code]]
=Matematica=

**USATE SEMPRE LE PARENTESI TONDE**, Rebol non da' precedenze agli operatori:
[[code]]
>>print 5 + 5 * 4 "SBAGLIATO"
40
== "SBAGLIATO"
>> print 5 + (5 * 4) "GIUSTO"
25
== "GIUSTO"
[[code]]
to:

 >>loop 5 [print "Ciao"]
 Ciao
 Ciao
Ciao
 Ciao
 Ciao

!
Forever
Il comando '''forever''' ripete un ciclo finche' non si da' il comando '''break''':

 >>a: 0
 >>forever [ a: a + 1  print a  if a = 10 [ break] ]
 1
 2
 3
 4
 5
 6 
 
7 
 
8
 9
 10
 
!Matematica
'''
USATE SEMPRE LE PARENTESI TONDE''', Rebol non da' precedenze agli operatori:

 >>print 5 + 5 * 4 "SBAGLIATO"
 40
 == "SBAGLIATO"
 >> print 5 + (5 * 4) "GIUSTO"
 25
 == "GIUSTO"

Deleted line 231:
Added lines 249-250:

December 19, 2008, at 04:18 PM by Massimiliano Vessi -
Changed lines 7-9 from:
(:toc:)

to:


December 19, 2008, at 04:17 PM by Massimiliano Vessi -
Added line 9:
Deleted line 10:
Deleted line 11:
Changed lines 13-34 from:
* '''GRATIS''': potete scaricare Rebol (meno di 1 MB) dal sito [[http://www.rebol.com]] per far girare tutti i programmi
*'''Multipiattaforma''': funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
*'''Compatto''': con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
*'''Interpretato''': non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.

!Prova
Scaricate '''rebview''' e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol  fa per voi.

!Installazione
!!Windows
*Scaricate '''
rebview.exe'''
*create un qualsiasi file che finisca con l'estensione '''.R'''
*cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il '''rebview.exe''' che avete installato
!!Linux
*Installate '''rebview''' in '''/usr/bin/'''
*per avviare un programma basta lanciare '''rebview nomeprogramma.r'''
*oppure aggiungere alla prima riga del programma con '''#!/usr/bin/rebview'''

!
Tipi di dati
Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e  manipolati correttamente. Il vantaggio e' che '''automaticamente''' operera' correttamente su di loro (somma, sottrazione, ecc.).
L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione ''type?'' ci dice di che tipo sia il dato.
!!Denaro
to:
* **GRATIS**: potete scaricare Rebol (meno di 1 MB) dal sito [[http://www.rebol.com/|http://www.rebol.com]] per far girare tutti i programmi
* **Multipiattaforma**: funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
* **Compatto**: con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
* **Interpretato**: non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
[[toc]]
=
Prova=
Scaricate **rebview** e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol fa per voi.
=Installazione=
==Windows==
* Scaricate **
rebview.exe**
*
create un qualsiasi file che finisca con l'estensione **.R**
*
cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il **rebview.exe** che avete installato
==Linux==
* Installate **rebview** in **/usr/bin/**
* per avviare un programma basta lanciare **rebview
nomeprogramma.r**
*
oppure aggiungere alla prima riga del programma con **#!/usr/bin/rebview**
=
Tipi di dati=
Rebol
ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e manipolati correttamente. Il vantaggio e' che **automaticamente** operera' correttamente su di loro (somma, sottrazione, ecc.). L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione //type?// ci dice di che tipo sia il dato.
==Denaro==
Added line 33:
[[code]]
Added lines 35-36:

[[code]]
Added line 38:
[[code]]
Added line 42:
[[code]]
Added line 44:
[[code]]
Changed lines 48-49 from:
!!Interi
to:
[[code]]
==Interi==
Added line 51:
[[code]]
Changed lines 54-56 from:
!!Decimali
to:

[[code]]
==Decimali==
Added line 58:
[[code]]
Changed lines 61-63 from:
!!Stringhe
to:

[[code]]
==Stringhe==
Added line 65:
[[code]]
Changed lines 68-70 from:
!!Tempo
to:

[[code]]
==Tempo==
Changed lines 72-73 from:
 15:32:01
!!
to:
[[code]]
>> type? 15:32:01
== time!
[[code]]

==Coppie==
Per memorizzare coppie di numeri, come la risoluzione di un monitor:
[[code]]
>> type? 640x480
== pair!
[[code]]

==Caratteri==
Per memorizzare singole lettere, per fare cio' anteponete il cancelletto e mettete il carattere tra virgolette:
[[code]]
>> type? #"D"
== char!
[[code]]


==Bytes==
Potete scrivere direttamente in codice macchina! Potete scrivere sia in esadecimale che in 64 bit,esempi:
[[code]]
>> type? #{42652061205245424F4C}
== binary!

>> type? 64#{UkVCT0wgUm9ja3Mh}
== binary!

[[code]]

==Email==
Esiste anche il formato email:
[[code]]
>> type? maxint@tiscali.it
== email!
[[code]]
==Identificativi==
Codici di idcentificatione, basta anteporre il cancelletto:
[[code]]
>> type? #0000-1234-56EV-989
== issue!
[[code]]
==Tag==
I tag usati in vari linguaggi, utili nella programmazioni di applicazioni per il web:
[[code]]
>> type? <img src="cover.png">
== tag!
[[code]]
==Percorsi file==
I percorsi dei file si inseriscono anteponendo il simbolo %:
[[code]]
>> type? %/c/rebol/rebol.exe
== file!
[[code]]
==URL==
Gli indirizzi web:
[[code]]
>> type? http://maxint.dynalias.org
== url!
[[code]]
==Blocco==
Il blocco è una peculiarita' di Rebol molto importante, si tratta di un elenco che permette di essere elencato di idnca con parle racchiuse da parentesi quadre:
[[code]]
>> type? [mano piede naso]
== block!
[[code]]


=Variabili=
In Rebol tutto è una variabile, anche le parole riservate possono essere utilizzate come variabili e ridefinite. Per definire una variabile basta che cominci per una lettera e l'assegnamento si fa con i due punti, ecco un esempio:
[[code]]
>> melo: 12
== 12
>> melo: melo + 2
== 14
>> melo: "Apriti sesamo"
== "Apriti sesamo"
[[code]]
Per stampare una variabile basta usare il comando **print**:
[[code]]
>>print melo
== "Apriti sesamo"
[[code]]

=I blocchi=
I blocchi sono una parte importante di Rebol, i blocchi possono contenere altri blocchi.
Ecco alcuni esempi:
[[code]]
>> prova: [10 [5x3  $4] "Ciccio"  now/date]
== [10 [5x3  $4.00] "Ciccio"  now/date]
[[code]]
La funzione **now/date** non è interpretata. Se si usa la funzione **reduce** viene interpretata:
[[code]]
>> prova: reduce [10 [5x3  $4] "Ciccio"  now/date]
== [10 [5x3 $4.00] "Ciccio" 26-Nov-2008]
[[code]]
**ATTENZIONE** Se il blocco contiene altri blocchi, i blocchi interni non sono valutati.

=Scelte e cicli=
==IF==
Per fare una determinata azione se una espressione è vera, ecco alcuni esempi:
[[code]]
>> a: 1
>> if a = 0 [ "zero" ]
>> if a = 1 [ "uno" ]
 == "uno"
[[code]]
==While==
La funzione **while** serve a utilizzare più condizioni per decidere se fare un'azione e/o la durata:
[[code]]
>>a: 0
>>b: 0
>> while [ a = 0  b < 10 ] [ print b  b: b + 1]
0
1
2
3
4
5
6
7
8
9
== 10
[[code]]
==loop==
Ripete un ciclo un numero di volte:
[[code]]
>>loop 5 [print "Ciao"]
Ciao
Ciao
Ciao
Ciao
Ciao
[[code]]
==Forever==
Il comando **forever** ripete un ciclo finche' non si da' il comando **break**:
[[code]]
>>a: 0
>>forever [ a: a + 1  print a  if a = 10 [ break] ]
1
2
3
4
5
6
7
8
9
10
[[code]]
=Matematica=
**USATE SEMPRE LE PARENTESI TONDE**, Rebol non da' precedenze agli operatori:
[[code]]
>>print 5 + 5 * 4 "SBAGLIATO"
40
== "SBAGLIATO"
>> print 5 + (5 * 4) "GIUSTO"
25
== "GIUSTO"
[[code]]

Rebol ha tutte le piu' importanti funzioni matematiche:

 ** POTENZA
 // RESTO
 exp  e elevato
 log-10  LOGARITMO BASE 10
 log-2  LOGARITMO BASE 2
 log-e  LOGARITMO BASE e
 square-root  RADICE QUADRATA
 absolute  valore assoluto
 negate  CAMBIA SEGNO
 min  MINIMO FRA 2 VALORI
 max  MASSIMO FRA 2 VALORI
 sine  SENO
 cosine COSENO
 tangent TANGENTE
 arcsine ARCSENO
 arccosine ARCCOSENO
 arctangent ARCTANGENTE
November 19, 2008, at 01:53 PM by Massimiliano Vessi -
Changed line 14 from:
* '''GRATIS''': potete scaricare Rebol (meno di 1 MB) dal sito [[www.rebol.com]] per far girare tutti i programmi
to:
* '''GRATIS''': potete scaricare Rebol (meno di 1 MB) dal sito [[http://www.rebol.com]] per far girare tutti i programmi
November 19, 2008, at 01:38 PM by Massimiliano Vessi -
Changed lines 20-21 from:
Scaricate '''rebview'' e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol  fa per voi.
to:
Scaricate '''rebview''' e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol  fa per voi.
November 19, 2008, at 01:38 PM by Massimiliano Vessi -
Added lines 19-21:
!Prova
Scaricate '''rebview'' e avviatelo, avrete a disposizione programmi, demo, e latre cose per capire se Rebol  fa per voi.

November 17, 2008, at 03:27 AM by Massimiliano Vessi -
Added line 31:
L'elemnto piu' impressionante e' che REBOL capisce da solo che tipo di dato sia! La funzione ''type?'' ci dice di che tipo sia il dato.
Changed lines 38-43 from:
!!Numeri
to:

Ma c'e' di piu', potete anche usare diverse valute usando le 3 lettere internazionali di identificazione davanti al dollaro: EUR$, CHF$
 >> type? EUR$84.87
 == money
!

!!Interi
Changed lines 45-46 from:
 8
to:
 >> type? 8
 == integer!
Changed lines 49-50 from:
 14.8
to:
 >> type? 14.8
 == decimal!
Changed lines 53-54 from:
 "Ciao a tutti"
to:
 >> type? "Ciao a tutti"
 == string!
November 13, 2008, at 03:18 AM by Massimiliano Vessi -
Changed line 31 from:
!!Money
to:
!!Denaro
Changed line 37 from:
!!Interi
to:
!!Numeri
November 13, 2008, at 03:15 AM by Massimiliano Vessi -
Added lines 28-49:

!Tipi di dati
Rebol ha tutta una serie di tipi di dati gia' pronti per essere utilizzati e  manipolati correttamente. Il vantaggio e' che '''automaticamente''' operera' correttamente su di loro (somma, sottrazione, ecc.).
!!Money
Rebol ha un tipo di dato per i soldi, basta anteporre il simbolo del dollaro davanti ad una cifra decimale, esempio:
 $0.40
altro esempio:
 >> type? $9.89
 == money!
!!Interi
Sono numeri interi:
 8
!!Decimali
Sono numeri decimali, hanno il punto per dividere le unita' dai decimali:
 14.8
!!Stringhe
Sono variabili che contengono parole o frasi, hanno le virgolette prima e dopo:
 "Ciao a tutti"
!!Tempo
Per memorizzare l'ora, si usano i due punti (ore, minuti, secondi):
 15:32:01
!!
November 13, 2008, at 02:35 AM by Massimiliano Vessi -
Changed lines 5-6 from:
Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!
to:
Rebol e' un linguaggio di programmazione meraviglioso, e' '''semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!'''

(:toc:)

Changed lines 17-27 from:
*'''Interpretato''': non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
to:
*'''Interpretato''': non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.

!Installazione
!!Windows
*Scaricate '''rebview.exe'''
*create un qualsiasi file che finisca con l'estensione '''.R'''
*cliccate due volte sul file e quando vi viene chiesto con cosa aprirlo, indicate il '''rebview.exe''' che avete installato
!!Linux
*Installate '''rebview''' in '''/usr/bin/'''
*per avviare un programma basta lanciare '''rebview nomeprogramma.r'''
*oppure aggiungere alla prima riga del programma con '''#!/usr/bin/rebview'''
November 13, 2008, at 02:22 AM by Massimiliano Vessi -
Changed lines 12-15 from:
to:
* '''GRATIS''': potete scaricare Rebol (meno di 1 MB) dal sito [[www.rebol.com]] per far girare tutti i programmi
*'''Multipiattaforma''': funziona su Windows, Linux, OSX, BSD e altre 42 piattaforme senza alcuna modifica
*'''Compatto''': con poche righe di codice potete fare cose che in un qualsiasi altro linguaggio servirebbero centinaia di righe
*'''Interpretato''': non dovete compilare il programma o modificare qualcosa, una volta scritto è pronto, quindi di ogni programma e' possibile vedere il sorgente.
November 13, 2008, at 02:11 AM by Massimiliano Vessi -
Changed lines 1-3 from:

!! REBOL per utonti
to:
!REBOL per utonti
Added lines 7-12:
!Vantaggi

I vantaggi sono molteplici:

* '''Linguaggio di altissimo livello''': cioe' piu' vicino al modo di pensare delle persone che dei computer, piu' facile da correggere e da scrivere.

November 12, 2008, at 08:55 PM by Massimiliano Vessi -
Added lines 1-7:

!! REBOL per utonti

''Guida iniziata il 12/11/2008''

Rebol e' un linguaggio di programmazione meraviglioso, e' semplice, potente e potete creare applicazioni con interfaccia grafica con pochissime righe di programmazione!

HomePage

Guide

Altro

Translate:

Pubblicità:

Licenza Creative Commons
DuckDuckGo

edit SideBar

edit TopNav

Blix theme adapted by David Gilbert, powered by PmWiki