Guide e Tutorials:indexed | ||||||||||||||||||||||
La funzione EnumFonts (Tutorial completo) La funzione EnumFonts risponde alla specifica necessità di elencare tutti i tipi di carattere (fonts) che si hanno a disposizione. Per ciascun tipo di carattere, dotato di nome proprio (ad es. Verdana, Tahoma, Arial, Courier...), la funzione che stiamo trattando recupera tutte le informazioni e le specifiche relative a quel particolare font che ha in possesso e le passa all'applicazione. Naturalmente come vedremo in seguito la funzione ha la facoltà di processare le informazioni nel modo desiderato dall'utente. Questo processo inoltre è continuo e si interromperà solamente quando non ci sono più tipi di carattere da processare oppure quando la funzione ritornerà il valore 0. Vediamo la dichiarazione generale della funzione che ricordiamo ancora una volta, deve essere inserita in un nuovo modulo.
Fatto questo diamo una rapida occhiata ai parametri della funzione che, come si è potuto notare seguendo le guide complete sulle altre funzioni API, spesso si ripetono e mantengono caratteristiche simili per non dire uguali.
Vediamo finalmente di fare un esempio. Vogliamo creare un'applicazione che elenchi tutti i possibili fonts a disposizione. Scelto un tipo di carattere, lo si potrà utilizzare per modificare o scrivere ex novo un testo all'interno di una RichTextBox. Vediamo passo passo come fare: Cominciamo ad aprire un nuovo progetto. Ci troveremo di fronte alla finestra del codice della nuova form, codice che sarà ancora vuoto. Aggiungiamo allora queste linee, che ci danno la possibilità di richiamare la nostra funzione EnumFonts:
Il codice qui sopra può essere inserito in corrispondenza dell'evento Form_Load:
Bene, adesso inseriamo nella form una ListBox ed una RichTextBox. La scelta di posizione e dimensione di questi due oggetti è naturalmente del tutto personale. Fatto ciò lasciamo la form momentaneamente a riposo ed apriamo un modulo che verrà denominato automaticamente Module1.bas. All'interno di tale modulo aggiungiamo la dichiarazione della costante LF_FACESIZE
Poi aggiungiamo tutte le informazioni che vengono processate per ogni singolo tipo di carattere, ossia: lfHeight, lfWidth, lfEscapement, Orientation, lfWeight lfItalic, lfUnderline, lfStrikeOut, lfCharSet, lfOutPrecision, lfClipPrecision, lfQuality, lfPitchAndFamily e per ultimo lfFaceName:
ed aggiungiamo, sempre nelle dichiarazioni generali del modulo Module1.bas la dichiarazione della nostra funzione EnumFonts come abbiamo già visto proprio all'inizio della lezione:
Per concludere le dichiarazioni generali aggiungiamo anche la dichiarazione della funzione CopyMemory che vedremo nelle guide successive e sulla quale per il momento non spenderemo neanche una parola:
Terminate finalmente le dichiarazioni generali del modulo, facciamo un breve riassunto di come si presenta il modulo fino a questo punto (e magari aggiungiamo anche un bell'Option Explicit che male non ha mai fatto):
Sviluppiamo adesso la nostra funzione che ha lo scopo di processare le informazioni dei tipi di caratteri che devono essere passate all'applicazione:
All'interno di questa funzione dichiariamo le variabili che ci serviranno:
Ed infine la funzione vera e propria:
Il modulo completo si presenterà quindi così:
Facendo girare il programma vediamo che la ListBox si riempie dei nomi che corrispondono ciascuno ad un tipo di carattere. Dunque il primo passo è fatto. Nella form principale andiamo ad aggiungere l'evento List1_Click, tramite il quale la nostra applicazione (da distribuire shareware, mi raccomando!) capirà quale font utilizzare nel momento in cui l'utente andrà a scrivere nella RichTextBox:
Ed il gioco è fatto. Per scaricare l'esempio fare riferimento alla rubrica ESEMPI. Noi ci aggiorniamo alla prossima lezione. Ciao. |
Archivio: | ||||
Lezioni | Commenta questa lezione | Invia la tua guida | Avviso per le nuove lezioni | Proponi un argomento |
Visual Basic Italia© copyright 2000 - tutti i diritti riservati |