venerdì 15 dicembre 2017

Icona nel Windows systray (system tray)

Se volete che il vostro programma abbia un'icona nel windows sistem tray (systray), vi basta utilizzare la proprietà statusIcon.

Questa insieme a:
Vi permette di creare dei menu di scelta, la nuvoletta che appare mettendoci sopra il maouse e cosa succede se uno fa un doppio click sull'icona.
Al momento funziona solo su Windows.

martedì 12 dicembre 2017

Gioco con le carte

Quando si cerca di fare un gioco con le carte da gioco, di solito il primo problema da affrontare è come fare il mazzo, mescolarlo ed estrarre le carte. Oggi vi presento una serie di messaggi e funzioni che fanno tutto il necessario:

on createDeck
   put "A,B,C,D" into cardSuits
   repeat for each item tItem in cardSuits
      repeat with i=1 to 13
         put i & tItem & comma after temp #cards are like: 1A,2A, ..., 1B, ...
      end repeat
   end repeat
   delete the last char of temp
   set the deck of this stack to temp
end createDeck

on shuffleDeck
   put the deck of this stack into temp
   put the number of items of temp into temp2
   sort items of temp by random(temp2)
   set the deck of this stack to temp
end shuffleDeck

function PickCard nCards
   put the deck of this stack into temp
   put item 1 to nCards of temp into picked
   delete item 1 to nCards of temp
   set the deck of this stack to temp
   return picked
end PickCard


In pratica il messaggio CreateDeck vi crea il mazzo e lo memorizza nella proprietà deck.
Il messaggio shuffleDeck mescola il mazzo.
La funzione  pickCard vi estrae il numero di carte che volete dal mazzo e poi vengono anche cancellate dall'elenco del mazzo.

sabato 2 dicembre 2017

Lettura veloce

Oggi presentiamo un software per imparare la lettura veloce, fatto in Italia dalla Fasasoftware, il programma è disponibile qui: http://www.fasasoftware.com/rapid-book-reading-fasasoftware/

e questo è un video esplicativo:

mercoledì 29 novembre 2017

Password field

Quando volete chiedere una password potete usare ask password:
ask password "Write your password:"


Ma se volete creare un campo password dentro al vostro programma, senza che si apra un'altra finestra come fare? Basta usare la proprietà imageSource.
Potete impostare qualunque immagine al posto dei caratteri, ad esempio:

on textChanged
   set the imagesource of the last char of me to 200946
end textChanged

Vi crea un mascheramento del genere:

giovedì 9 novembre 2017

Livecode e Kanboard

Kanboard è una sistema di gestione e pianificazione del lavoro: https://kanboard.net/
Adesso c'è una guida che spiega come integrarlo con Livecode: https://2108.co.uk/livecode-to-kanboard-api-part-1/

martedì 31 ottobre 2017

Sanitizzazione query SQL

All'ultimo linux day di Milano è stato chiesto, da chi presenziava alla mia presentazione, che tipo di sicurezze offre Livecode contro gli attacchi tipi SQL injection.
Indagando, con mia grande sorpresa ho scoperto che livecode contiene la parametrizzazione delle query.
In pratica quando si esegue la parametrizzazione di una query, la query viene eseguita e poi modificati valori.
Per eseguire una parametrizzazione, basta immettere nella query le variabili sotto forma di numero anteponendo i due punti:


put revDataFromQuery(tab,return,myID,"SELECT x,y FROM test WHERE x = :1 AND y = :2", "valueX", "valueY" ) into tResults


Ricordatevi di mettere tra virgolette le variabili associate ai segnaposto e non avrete più problemi di attacchi sql.