venerdì 11 marzo 2016

Personalizzare le colonne di un Datagrid

Oggi vediamo come personalizzare alcune colonne di un datagrid, in modalità tabella.
Prima di tutto creiamo uno stack con un datagrid di tre colonne:
Ora utilizziamo l'ispettore delle proprietà e alla voce colonne premiamo il pulsante + per le colonne 2 e 3 che vogliamo modificare.
Chiudete eventuali finestre che si aprono, perchè prima bisogna capire cosa sono.
Aprite l'application browser, come potete vedere, ogni volta che viene creato un datagrid, viene creato un substack relativo ad esso di nome "Data Grid Templates ..." seguito da un numero. Ora se vedete come è composto questo substack noterete due card: una con delle istruzioni contenente solo un gruppo chiamato DatagridTempaleInstrucion, e un'altra che contiene tutti gli oggetti utilizzati per il nostro datagrid.
Come vedete ci sono due gruppi chiamati col 2 e col 3, questi gruppi sono quelli che vengono creati quando abbiamo premuto il pulsante +, e vanno modificati se vogliamo personalizzare il nostro datagrid.
Selezioniamoli, levando il campo testo di cui sono composti e mettendoci dei pulsati:
Chiudiamo il substack e salviamo.
Ora dobbiamo aggiornare i rispettivi script di behavior che sono utilizzati per popolare le righe del nostro datagrid per le nostre colonne modificate. Se notate nell'application browser abbiamo anche i pulsanti col 2 behavior e col 3 behavior, modifichiamone i codici semplicemente sostituendo la parola field con la parola button, poichè noi abbiamo levato i field e messo un pulsante al loro posto. Questa sostituzione per ora va fatta solo nei messaggi: LayoutControl, FillInData, ResetData.
A seconda dei controlli utilizzati, lo script andrà modificato ulteriormente, ma nel nostro esempio queste modifiche sono sufficienti.
Abbiamo finito.
Ora possiamo creare un pulsante per aggiungere le righe con il seguente codice:

on mouseUp
   send "addLine 1" to group 1
end mouseUp

cliccandoci sopra ogni volta verrà aggiunta una riga con le modifiche volute:


Ho fatto anche un video a riguardo: