VB I controlli di VB6 pg2
In questa e nelle successive pagine illustrerò tramite la creazione di un mini programma per la gestione delle previsioni metereologiche alcuni nuovi controlli del VB6 e le nuove caratteristiche di altri controlli già in dotazione alle precedenti versioni di VB.
Il programma sarà l'implementazione di un nuovo progetto con un form sul quale  memorizzare le previsioni del tempo giorno per giorno.( Creimo solo l'interfaccia grafica senza   preoccuparci  di salvare i dati in un DataBase cosa che credo molti di voi sappia fare facilmente ). A questo scopo avremo bisogno di un controllo per selezionare un determinato giorno senza doverlo inserire manualmente, poi inseriremo 4 pulsanti che rappresentano visivamente le varie condizioni atmosferiche, una lista con le previsioni e una textbox per inserire le note. Naturalmente i dati sul tempo li prenderemo da un servizio metereologico  ad es. le previsioni del tg5.

Il nuovo IMAGELIST

In questa pg analizzeremo il nuovo ImageList. ImageList può contenere come già dice il nome un insieme di immagini da usare con altri controlli standar di VB6 ad es. nel nostro caso i Command Button.Molti di voi conoscono bene   l'uso di questo controllo ma un piccolo ripasso non guasta mai e soprattutto aiuta i neofiti. Questo controllo permette di ridurre i tempi di sviluppo perchè è possibile scrivere del codice che fa riferimanto ad un solo catalogo di immagini. Anzichè scrivere il codice per il caricamento di bitmap o icone usando la funzione LoadPicture si può popolare il controllo ImageList una volta sola quindi assegnare valori univoci alla proprietà Key e scrivere il codice in cui si fa riferimento alle immagini per mezzo della proprietà Index o Key. Oltre ai file di tipo bitmap e icona con il VB6 è possibile usare anche i file JPEG e GIF oltre a CUR. E' possibile aggiungere e rimuovere  immagini  in fase di progettazione o esecuzione.Per ImageList sono disponibili le proprietà standard delle Collezioni cioè Key e Index ed i metodi Add, Remove e Clear. Per aggiungere un immagine in fase di progettazione si usa la pagina delle proprietà e dopo aver scelto la dimensione   basta andare al Tab successivo e premere inserisci immagine verrà così visualizzata sullo schermo la finestra "Seleziona immagine"  in cui individuare i file desiderati. per il nostro programmino inseriremo delle icone messe a dispèosizione da VB6 nella dir Common\Graphics\Icons\Elements le icone saranno Sun,Rain e Snow ed impostare un valore univoco per la proprietà Key. Assegnando un valore univoco alla proprietà Key dell'oggetto ImageList il codice risulta nettamente di   più semplice lettura. Inseriamo ora i 4 pulsanti per archiviare i nostri dati ad ognuno di loro  associamo un'immagine attraverso la nuova proprietà Picture dei Command e scriviamo nel Form_Load quanto segue:

CommandSole.Picture = ImageList1.ListImages ("sole").Picture

CommandPioggia.Picture = ImageList1.ListImages ("pioggia").Picture

CommandNeve.Picture = ImageList1.ListImages ("neve").Picture

Per il controllo ImageList in VB6 sono disponibili oltre al metodo Overlay che useremo tra poco anche i metodi Draw e ExtractIcon che permettono di creare immagini composte, di disegnare immagini e di creare un icona usando una bitmap memorizzata nell'ImageList. A qiesto punto associamo al quarto pulsante un'icona per indicare che le condizioni meteo sconsigliano di uscire di casa questa icona l'otteremo sovvrapponendo due immagini usando il metodo Overlay insieme alla proprietà MaskColor. Il metodo Overlay richiede 2 argomenti  il primo per specificare l'immagine sottostante e il 2 per quella sopra. Entrambi gli argomenti  possono corrispondere al valore della proprietà Index o Key di un oggetto ImageList. Procediamo inserendo nell'ImageList  le figure di divieto reperibile nella dir Common\Graphics\Bitmaps\Assorted\Intl_no con index 4 e dell'uomo  reperibile in Common\Graphics\Icons\Misc\Misc27 con index 5 . Per ottenere il divieto di uscire sempre in Form_Load si scrive il codice seguente:

ImageList1.MaskColor = vbGreen

Set CommandDivieto.Picture =ImageList1.Overlay ( 5,4 )

In alternativa ad Overlay si può usare la proprietà Key delle immagini

Set CommandDivieto.Picture =ImageList1.Overlay ("uomo","divieto" )

MaskColor è stato utilizzato per specificare il colore che deve diventare trasparente quando si sovrappone un'immagine ad un'altra. Nel nostro caso lo sfondo dell'immagine "divieto" è verde per cui quando nel codice la proprietà MaskColor viene impostata su vbGreen nell'immagine composta il colore verde diventa trasparente.

Fine seconda parte