venerdì 30 maggio 2014

Personalizzare il Text di una TListView con MultiDetailAppearance

Durante lo sviluppo di una applicazione FireMonkey mobile è quasi impossibile non trovarsi nella situazione di voler personalizzare l'aspetto grafico di una TListView.

Questo accade generalmente perchè si vogliono mostrare più dati relativi ad un singolo Item, rispetto ai casi più semplici (dove basta impostare Text e magari DetailText).

Uno degli esempi forniti (già da XE4) da Embarcadero (c'è un articolo di Sarina DuPont a riguardo), mostra come sia possibile customizzare l'aspetto degli elementi di una TListView in modo da avere a disposizione più "DetailText", da collegare ad esempio attraverso l'uso dei LiveBindings alla nostra fonte dati (un dataset, per esempio).

Per chi usa RAD Studio XE6, l'esempio si trova nella cartella:

C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\Object Pascal\Mobile Samples\User Interface\ListView

L'esempio è completo di un package SampleListViewMultiDetailAppearancePackage che registra nel vostro IDE una nuova ItemAppearance da applicare alla vostra ListView.



Manipolando le proprietà e gli oggetti del nodo ItemAppearance, è possibile personalizzare moltissimi aspetti del nostro TListViewItem, ad esempio il font (dimensione, colore, stili) e il posizionamento del testo (per ogni singolo Detail, usando allineamenti e tutte le altre opzioni come Opacity e WordWrap...).

Per esempio, possiamo dire che vogliamo colorare di rosso il primo Detail di ogni Item:



Forse per una svista, non è presente il nodo Text (al livello dei nodi MultiDetail1/2/3) e quindi non sembra possibile manipolare in alcun modo il testo principale degli item...

In realtà con una piccola modifica alla unit MultiDetailAppearanceU.pas e cioè semplicemente ripubblicando la proprietà Text della classe TMultiDetailItemAppearance e ricompilando il package SampleListViewMultiDetailAppearancePackage, otteniamo nuovamente il nodo Text (presente nelle ItemAppearance standard):

La modifica da effettuare: ripubblicare la proprietà Text di TMultiDetailItemAppearance

Il nodo Text è così visibile (dopo aver ricompilato il package) nell'Object Inspector

Diventerà così facilissimo modificare comodamente nell'IDE tutte le opzioni di Text e ottenere un aspetto personalizzato del testo principale degli item della TListView (con MultiDetailAppearance).

Ad esempio ho impostato che il Text fosse verde e grassetto:


Spero possa esservi utile!

A presto,
Andrea

lunedì 12 maggio 2014

DelphiDay Italia 2014: 30 giorni all'evento!

Mancano 30 giorni all'appuntamento annuale per gli sviluppatori Delphi in Italia: il DelphiDay 2014 (tredicesima edizione) che si terrà, come di consueto, a Piacenza (presso il Best Western Park Hotel), mercoledì 11 Giugno!


Una giornata, organizzata da Wintech-Italia, dedicata alla comunità Delphi in Italia, con diverse sessioni sulle ultime novità della versione XE6 ed interessanti occasioni di scambio fra i partecipanti nelle sessioni pomeridiane (tavole rotonde), dove è previsto un alto livello di coinvolgimento dei presenti.



Le iscrizioni sono aperte ! 
(Termine: 04 Giugno)
Il costo dell'iscrizione alla conferenza (40 €) comprende il pranzo e il coffee break.

Ospiti internazionali:
  • Marco Cantù (Embarcadero, Delphi and RAD Studio Product Manager)
    • ci aggiornerà sullo stato di Delphi, sulle ultime novità e su cosa ci aspetta
    • è previsto uno spazio durante la conferenza per permettere a i partecipanti di fare qualche domanda al Product Manager (preparatevi :-) ) 
  • Michael Philippenko (Fast Reports, CEO e co-fondatore)
    • insieme ad un collega sviluppatore, ci mostrerà l'ultima versione di Fast Reports e le novità in ambito FireMonkey del motore di reportistica di Delphi.
Gold Sponsors (che ringraziamo):
Anche quest'anno, il giorno precedente alla conferenza (martedì 10 Giugno), è prevista una giornata di seminari rivolti agli sviluppatori Delphi. Gli argomenti di questa edizione sono i seguenti:
  • FireDAC 
  • Delphi REST Client Library 
  • BaaS con Delphi XE6 
  • Costruire una API REST
Ogni sessione è di mezza giornata e ogni partecipante può scegliere quali sessioni seguire (sia la mattina che il pomeriggio), componendo così la giornata in base alle proprie esigenze.
I seminari saranno tenuti da me e da Paolo Rossi, per Wintech-Italia.
Tutti i dettagli sul contenuto dei seminari alla pagina: http://www.delphiday.it/seminari.html

E' previsto uno sconto se vi iscrivete sia ai seminari che alla conferenza!

Vi segnaliamo inoltre l'Evento Gestionale Open che invece segue la conferenza (giovedì 12 Giugno): l'evento, di mezza giornata, è gratuito e propone quattro soluzioni di integrazione con il gestionale.


Per dettagli e iscrizioni, visitate il sito www.delphiday.it !