Oggi vi presento un tool alternativo per fare il debug:
Si chiama PowerDebug e potete trovarlo qui: http://powerdebug.ahsoftware.net
Ha una serie di funzioni aggiuntive rispetto al debug dell'IDE di livecode, tra cui bloccare l'esecuzione quando una variabile cambia valore.
martedì 30 maggio 2017
lunedì 29 maggio 2017
TinyDict
Esiste un dizionario per livecode compatto e veloce da usare:
Potete scaricarlo da qui: http://livecodeshare.runrev.com/stack/825/TinyDictionary
ve lo consiglio, è più veloce del dizionario standard.
Potete scaricarlo da qui: http://livecodeshare.runrev.com/stack/825/TinyDictionary
ve lo consiglio, è più veloce del dizionario standard.
giovedì 25 maggio 2017
DBLib e DB
Per chi è interessato ai database Andre Garzia ha sviluppato la libreria aggintiva DBLib che funziona anche su dispositivi mobili.
Mentre per chi è interessato ai database NoSQL c'è la libreria datastorage lib
Per più informazione potete leggere la seguente pagina: http://andregarzia.com/en/projects/dblib
oppure i sorgente su gitHub: https://github.com/soapdog/livecode-dblib
Mentre per chi è interessato ai database NoSQL c'è la libreria datastorage lib
Per più informazione potete leggere la seguente pagina: http://andregarzia.com/en/projects/dblib
oppure i sorgente su gitHub: https://github.com/soapdog/livecode-dblib
martedì 23 maggio 2017
CouchDB
Livecode è compatibile con il database CouchDB, qui potete trovare una guida: http://livecode.wikia.com/wiki/CouchDB
CouchDB è un database a documenti stile NoSQL, quindi non ha tabelle, ma solo documenti con dati.
Ogni documento può conentere un numero infinito di dati e sotto documenti.
Il vantaggio del NoSQL è quando non si sa con cosa si avrà a che fare. Ad esempio un negozio che aggiunge oggetti con proprietà sempre diverse: colore, grandezza, peso, luminosità, velocità, ecc. Grazie a NoSQL, quando arriva una nuova proprietà da inserire, non bisogna modificare le tabelle.
CouchDB è un database a documenti stile NoSQL, quindi non ha tabelle, ma solo documenti con dati.
Ogni documento può conentere un numero infinito di dati e sotto documenti.
Il vantaggio del NoSQL è quando non si sa con cosa si avrà a che fare. Ad esempio un negozio che aggiunge oggetti con proprietà sempre diverse: colore, grandezza, peso, luminosità, velocità, ecc. Grazie a NoSQL, quando arriva una nuova proprietà da inserire, non bisogna modificare le tabelle.
lunedì 22 maggio 2017
Installer linux
Ho appena creato i pacchetti DEB e RPM per installare livecode su linux a 64bit, si possono scaricare da qui: http://www.maxvessi.net/livecode/linux/
Rispetto all'installatore classico sono più semplici da installare e risolvono qualche bug.
Se vi servono per qualche altro formato fatemi sapere.
Rispetto all'installatore classico sono più semplici da installare e risolvono qualche bug.
Se vi servono per qualche altro formato fatemi sapere.
giovedì 18 maggio 2017
SVG widget a colori
La Ah Software ha creato un widget SVG che riprende il modello in bianco e nero di livecode, ma si può usare a colori!
Ecco un esempio:
Vi ricordo che la grafica SVG è vettoriale, e non perde definizione nè ingrandendola, nè rimpicciolendola.
Per fare una grafica in SVG ci sono tantissimi programmi, anche InkScape, che convertono quello che fate in SVG e poi vi basterà impostare la proprietà iconPathsTagData alla stringa SVG.
I file SVG sono solo una stringa di testo del tipo: <rect x="360" y="47.6" width="80" height="152"...
Potete scaricare il widget da qui
Una volta scaricato, vi basterà scompattare il file ed utilizzare il Tools -> Extension builder per installare il widget.
Potete contattare l'inventore a: ahsoftware@ahsoftware.net
Ecco un esempio:
Vi ricordo che la grafica SVG è vettoriale, e non perde definizione nè ingrandendola, nè rimpicciolendola.
Per fare una grafica in SVG ci sono tantissimi programmi, anche InkScape, che convertono quello che fate in SVG e poi vi basterà impostare la proprietà iconPathsTagData alla stringa SVG.
I file SVG sono solo una stringa di testo del tipo: <rect x="360" y="47.6" width="80" height="152"...
Potete scaricare il widget da qui
Una volta scaricato, vi basterà scompattare il file ed utilizzare il Tools -> Extension builder per installare il widget.
Potete contattare l'inventore a: ahsoftware@ahsoftware.net
venerdì 12 maggio 2017
Gli array, una precisazione
Ho sempre usato gli array di livecode, monodimensionale e pluridimensionali, ma ancora non mi ero accorto di alcune peculiarità.
Se inserite un valore in un array tipo arr[Rossi] e poi inserite un secondo valore in arr[Rossi][Mario], ciò che è contenuto in arr[Rossi] si cancella perchè arr[Rossi] diventa un contenitore di un altro array: il suo secondo livello, con chiavi e valori.
Esempio
il valore di arr["Rossi"] non è più la stringa "cognome", ma un array con le chiavi "Mario" e "Anna".
Questo modalità può tornare utile quando dobbiamo lavorare solo una parte di un array, perchè così possiamo inviarne solo una parte, ad esempio:
mostrerà solo Mario e Anna, perchè il messaggio elencaArray vede solo:
Se inserite un valore in un array tipo arr[Rossi] e poi inserite un secondo valore in arr[Rossi][Mario], ciò che è contenuto in arr[Rossi] si cancella perchè arr[Rossi] diventa un contenitore di un altro array: il suo secondo livello, con chiavi e valori.
Esempio
put "cognome" into arr["Rossi"]
put "nome marito" into arr["Rossi"]["Mario"]
put "nome moglie" into arr["Rossi"]["Anna"]
il valore di arr["Rossi"] non è più la stringa "cognome", ma un array con le chiavi "Mario" e "Anna".
Questo modalità può tornare utile quando dobbiamo lavorare solo una parte di un array, perchè così possiamo inviarne solo una parte, ad esempio:
put "nome marito" into arr["Rossi"]["Mario"]
put "nome moglie" into arr["Rossi"]["Anna"]
elencaArr arr["Rossi"]
on elencaArray tArr
put the keys of tarr
end elencaArray
mostrerà solo Mario e Anna, perchè il messaggio elencaArray vede solo:
- tArr["Mario"]
- tArr["Anna"]
mercoledì 10 maggio 2017
Tree view widget
Oggi vediamo come funziona il misterioso controllo tree view. Si tratta di un controllo per fare le liste ad albero.
Queste liste possono avere tutte le nidificazioni che volete. Vediamo nel dettaglio come fare. Trascinate nel vostro programma il tree view:
Ci basta settare la proprietà ArrayData per creare il nostro albero. Mandiamo questi comandi:
e otterrete questo:
abbiamo impostato anche la proprietà readOnly su true così non possiamo modificare le scritte o aggiungerci elementi cliccandoci sopra.
Volendo è possibile aggiungere anche un valore, si può fare solo all'ultima voce si un ramo, se il valore di una voce è diverso da empty, allora diventa l'ultima voce di quel ramo.
Ad esempio il codice:
il risultato è questo:
Come vedete la voce finale del ramo il "Cane di Anna" ha una seconda voce "lampo", mentre avendo messo un valore a "Mario" la sotto voce "gatto di Mario" è sparita, perchè le voci che hanno un valore diventano la fine di un ramo.
Il mio consiglio è di non dare mai un valore alle voci, usate la voce stessa, che può contenere anche degli spazi, se usate le virgolette, per mettere più informazioni su una sola riga.
Vi ricordo che potete scegliere anche il tipo di ordinamento con SortType and SortOrder.
Queste liste possono avere tutte le nidificazioni che volete. Vediamo nel dettaglio come fare. Trascinate nel vostro programma il tree view:
Ci basta settare la proprietà ArrayData per creare il nostro albero. Mandiamo questi comandi:
set the readOnly of widget "tree View" to true
put empty into temp[Rossi][Mario]
put empty into temp[Rossi][Lisa]
put empty into temp[Rossi][Mario]["Gatto di Mario"]
put empty into temp[Rossi][Lisa]["Cane di Lisa"]
put empty into temp[Verdi][Luigi]
put empty into temp[Verdi][Anna]
put empty into temp[Verdi][Luigi]["Gatto di Luigi"]
put empty into temp[Verdi][anna]["Cane di Anna"]
set the arrayData of widget "Tree View" to temp
abbiamo impostato anche la proprietà readOnly su true così non possiamo modificare le scritte o aggiungerci elementi cliccandoci sopra.
Volendo è possibile aggiungere anche un valore, si può fare solo all'ultima voce si un ramo, se il valore di una voce è diverso da empty, allora diventa l'ultima voce di quel ramo.
Ad esempio il codice:
put the arraydata of widget "tree view" into temp
put "Lampo" into temp[Verdi][Anna]["Cane di Anna"]
put "(marito)" into temp[Rossi][Mario]
set the arrayData of widget "Tree view" to temp
il risultato è questo:
Come vedete la voce finale del ramo il "Cane di Anna" ha una seconda voce "lampo", mentre avendo messo un valore a "Mario" la sotto voce "gatto di Mario" è sparita, perchè le voci che hanno un valore diventano la fine di un ramo.
Il mio consiglio è di non dare mai un valore alle voci, usate la voce stessa, che può contenere anche degli spazi, se usate le virgolette, per mettere più informazioni su una sola riga.
Vi ricordo che potete scegliere anche il tipo di ordinamento con SortType and SortOrder.
martedì 9 maggio 2017
Intercettare i pulsanti speciali (Ins, Home, PgSU, PgUp, ecc...)
In livecode per intercettare un pulsante di solito usiamo il messaggio keyUp, ma questo messaggio non gestisce tutto.
Ecco una lista di messaggi utili:
Ecco una lista di messaggi utili:
- ArrowKey per le frecce della tastiera
- ControlKey per il tasto Control ed eventuali combinazioni
- FunctionKey per i tasti F1, F2, F3 e così via...
- enterKey per il tasto invio grosso della tastiera
- returnKey per il tasto invio piccolo del tastierino numerico
- deleteKey per il tasto Canc
- backspaceKey per il tasto backspace sopra l'invio grosso
- CutKey il taglia, cioè CTRL+X o qualunque cosa sia in quel momento
- copyKey il copia, cioè CTRL+C o qualunque cosa sia in quel momento
- PasteKey l'incolla, cioè CTRL+P o qualunque cosa sia in quel momento
- TabKey il tasto TAB
- OptionKey il tasto ALT (o META su Mac)
- rawKeyDown / rawkeyUp la versione down o up differiscono se allo schiacciare del pulsante o al rilascio dopo averlo schiacciato. Questi messaggi ricevono il segnale da qualsiasi pulsante e vi restituisce il numero. Ecco alcuni numeri utili:
- Ins: 65379
- Home: 65360
- Canc: 65535
- Fine: 65367
- Pag Up: 65365
- Pag down: 65366
lunedì 8 maggio 2017
Migliorata barra della ricerca
Finalmente la barra della ricerca nella colonna qui a destra dovrebbe funzionare correttamente.
Provatela anche voi e ditemi nei commenti che vi sembra.
Provatela anche voi e ditemi nei commenti che vi sembra.
Iscriviti a:
Post (Atom)