' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' Capitolo_8__Utilizzo_di_risorse_immagine ****** 8: Utilizzo di risorse immagine ****** La maggior parte dei linguaggi di programmazione Windows sopportano file .RES (Risorse). Un file di risorse non altro che un insieme di immagini (più risorse sotto forma di stringhe e dati). In questo capitolo parleremo delle liste di immagini, come includere le risorse nel vostro eseguibile, e come utilizzarle correttamente nei vostri programmi. 8.1 Risorse supportate Rapid-Q sopporta direttamente solo risorse immagine, cioè icone e Bitmap. Quale differenza fa caricare un'immagine in esecuzione o caricare risorse? Principalmente, quando dichiarate la maniglia di una risorsa, il file immagine viene automaticamente incluso nel vostro eseguibile. Ecco un esempio: $RESOURCE ICO_TEST AS "C:\ICONS\TEST.ICO" DIM Form AS QForm Form.ICOHandle = ICO_TEST 'Form.Icon = "C:\ICONS\TEST.ICO" Il file C:\ICONS\TEST.ICO viene incluso nell'eseguibile, il che significa che non è necessario includere TEST.ICO se avete intenzione di distribuire il vostro programma .EXE. Rapid-Q non genera file .RES per voi, e non è in grado di utilizzarli. La maggior parte dei linguaggi utilizza file .RES, ma ciò non è possibile in Rapid-Q, dovrete estrarre le immagini ed utilizzare la direttiva $RESOURCE per includerle nella vostra applicazione. È possibile anche fare così: Form.ICOHandle = ICO_TEST DIM Image AS QImage Image.Icon = Form.Icon Image.Icon normalmente accetta un valore stringa, ma se non è specificata alcuna stringa leggerà l'icona memorizzata in precedenza. In questo caso stiamo caricando Form.Icon nella nostra "cache" e Image.Icon leggerà da essa. Ed in questo caso? Image.Icon = Form.Icon + Form2.Icon Questo caricherà Form2.Icon nella cache, così Image.Icon copierà Form2.Icon. Tuttavia, notate che non è possibile assegnare maniglie alle icone, per esempio: Image.IcoHandle = Form.IcoHandle L'interprete tenterà di cercare il collegamento ad una risorsa, ma non lo troverà . 8.2 Introduzione alle liste di immagini Fate riferimento all'appendice per le proprietà ed i metodi di QImageList. Una lista di immagini è una matrice di icone e/o bitmap. Sono in ordine da0 a N. La prima immagine che i scegliete avrà come indice 0, la successiva 1 ecc.. Una lista di immagini conterrà immagini di larghezza e di altezza FISSE. Ogni qualvolta che verranno variate le proprietà Width o Height verrà aggiornata l'intera matrice. Ciò non significa che non si può inserire un file BMP 100x100 quando larghezza della vostra lista di immagini è 32. Significa soltanto che la vostra BMP sarà ridimensionata, che lo vogliate o no. DIM ImageList AS QImageList ImageList.Width = 32 ImageList.Height = 32 ImageList.AddICOFile("app.ico") ImageList.AddBMPFile("app.bmp", 0) È possibile aggiungere icone o bitmap in qualsiasi ordine. Come in precedenza, si possono aggiungere immagini dalla "cache" se non viene specificato alcun nome di file. Come prima: ImageList.AddICOFile(Form.Icon) ImageList.AddICOFile(ImageList.GetICO(0)) 8.3 Altri tipi di risorse È possibile includere qualsiasi genere di risorsa al vostro programma Rapid-Q, ma come si utilizzano questi altri tipi? Per esempio, se includo un file .WAV come risorsa, come posso utilizzarlo nella mia routine PLAYWAV? Bene, dal momento che PLAYWAV può utilizzare riferimenti a risorse, potrete semplicemente passarlo come parametro: $RESOURCE Bomb_WAV AS "BOMB.WAV" PlayWav(Bomb_WAV, 1) '-- 1 = suonare in background SLEEP 5 '-- Attendere che il wav sia finito Per quanto riguarda altri tipi, è possibile estrarre le risorse da manipolare. $RESOURCE Whatever_TYPE AS "text.txt" ExtractResource(Resource(0), "text.txt") Una volta terminato di utilizzarlo, potrete semplicemente cancellare il file. Ci sono diversi usi per l'estrazione di risorse, questa tecnica può anche essere impiegata in un programma di installazione. Per maggiori informazioni su EXTRACTRESOURCE, RESOURCE, e RESOURCECOUNT, vedere appendice C: altre parole chiave riservate. ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb