Gli oggetti globali contengono importanti informazioni sull’applicazione e sul sistema operativo: per mezzo di essi l’applicazione che si sta sviluppando potrà sentirsi sempre più integrata nel “mondo” che la circonda, capace di funzionare senza problemi su qualsiasi personal computer.
Nella scorsa lezione abbiamo fatto conoscenza delle variabili globali, ovvero di variabili il cui contenuto è accessibile da qualunque parte dell’applicazione in corso di sviluppo.
In questa lezione vogliamo presentare gli oggetti globali: essi contengono importanti informazioni sull’applicazione e sul sistema operativo. Per mezzo di essi l’applicazione che stiamo sviluppando potrà sentirsi sempre più integrata nel “mondo” che la circonda, capace di funzionare senza problemi su qualsiasi personal computer.
Iniziamo con una digressione di tipo teorico. Supponiamo che l’applicazione che stiamo sviluppando debba accedere più volte ad un file all’interno del quale sono salvati dati necessari al suo funzionamento.
Si immagini di aver preparato un programma in Visual Basic capace di collegarsi ad Internet, leggere gli ultimi dati di borsa, e salvarli in un file di dati all’interno del proprio disco fisso. Tale file sia chiamato borsa.dat e sia salvato nella directory (o cartella) ove risiede il nostro programma.
Utilizzando le opportune istruzioni – che analizzeremo nelle prossime lezioni – il nostro programma sarà sempre in grado di aggiornare il file con le quotazioni di borsa più recenti.
L’istruzione Open, che presenteremo prossimamente, permette – come vedremo – di aprire il file in questione:
L’istruzione Open permette di aprire un file diversi modi (input/output/append sequenziale, input/output casuale, input/output binario) che verificheremo ad uno ad uno, anche se per un’applicazione come quella presentata è notevolmente più adatto l’utilizzo di file database.
All’accesso ai dati, ed in particolare all’utilizzo dei database, sarà dedicata tutta una serie di lezioni.
Cosa succede se forniamo tale programma ad un nostro amico e questi provi ad installarlo in una directory diversa da quella in cui l’abbiamo installato noi?
Se non avremo avuto cura di utilizzare un oggetto globale come App il programma non riuscirà a trovare il file borsa.dat da aggiornare, l’esecuzione dello stesso verrà interrotta e verrà visualizzato un messaggio d’errore.
Oggetto globale App
L’oggetto globale App è molto importante perché è in grado di restituire molte informazioni preziose sulla nostra applicazione: il titolo dell’applicazione, la directory all’interno della quale è installato il programma, il nome del file eseguibile e il nome del file contenente la guida in linea.
L’istruzione App.Path
permette di ottenere il percorso completo dell’applicazione.
Per assicurarci che il nostro programma trovi il file borsa.dat dichiariamo a livello globale una variabile Appl, quindi nell’evento Form_Load scriviamo:
Appl = App.Path
If Right$(App.Path, 1) "\" Then
Appl = Appl + "\"
End If
L’istruzione Appl = App.Path
associa alla variabile globale Appl il percorso completo dell’applicazione. Le istruzioni successive verificano se il percorso completo del programma termini con il carattere “\”. Nel caso in cui ciò non sia vero il carattere “\” viene aggiunto.
Right$ è una funzione che appartiene alla vasta schiera di quelle dedicate alla manipolazione delle stringhe di carattere (di cui faremo presto conoscenza) e che in questo caso estrae l’ultimo carattere di App.Path.
Per aprire il file borsa.dat utilizzeremo quindi l’istruzione:
Il file borsa.dat verrà correttamente aperto in qualunque directory l’applicazione venga installata.
– App.Path
restituisce, come abbiamo visto, il percorso dell’applicazione
– App.Title
restituisce il titolo dell’applicazione
– App.Helpfile
restituisce il nome del file della guida in linea
– App.EXEName
restituisce il nome del file eseguibile dell’applicazione
– App.LegalCopyright
restituisce informazioni sul copyright
– App.Comments
restituisce i commenti sull’applicazione
– App.ProductName
restituisce il nome del prodotto
– App.Major
e App.Minor
restituiscono la versione del programma
Le informazioni relative a copyright, commenti, nome del prodotto e versione possono essere inserite dal programmatore all’atto della compilazione ovvero della creazione del file eseguibile dell’applicazione scegliendo dal menù File la voce Crea [nome del progetto].exe e facendo clic sul pulsante Opzioni…
consente di verificare se è già in esecuzione un’altra istanza del programma; App.hInstance
fornisce un handle dell’applicazione.
Oltre all’oggetto App esistono altri oggetti globali: Clipboard, Screen, Printer e Debug.
Altri oggetti globali: clipboard, screen e printer
Tutti noi conosciamo che cosa sia la clipboard o area degli Appunti di Windows.
Le operazioni di taglia, copia, incolla attingono continuamente all’uso della Clipboard, una speciale area che Windows usa per riporre temporaneamente elementi grafici e testuali.
Quando, dopo aver selezionato del testo all’interno di Microsoft Word, scegliamo Copia dal menù Modifica, il testo e la grafica selezionati vengono posti appunto nella Clipboard. Il contenuto di tale area può essere quindi riversato all’interno di una qualunque applicazione selezionando l’apposito comando Incolla.
In Visual Basic esiste l’oggetto globale Clipboard che permette di interagire con l’area degli appunti di Windows in maniera semplice e diretta.
consente, ad esempio, di ripulire l’area degli appunti cancellando ogni suo contenuto. Prima di eseguire la copia di un qualche elemento dalla nostra applicazione Visual Basic è opportuno eliminare ciò che la Clipboard di Windows contiene.
Nel caso in cui si voglia copiare nella Clipboard della grafica va utilizzata l’istruzione Clipboard.SetData
, qualora si tratti di solo testo l’istruzione Clipboard.SetText.
Entrambe le istruzioni devono essere immediatamente seguite dai riferimenti agli elementi che devono essere posizionati negli appunti.
Al contrario Clipboard.GetData
e Clipboard.GetText
consentono di incollare il contenuto della Clipboard all’interno di uno specifico oggetto nella nostra applicazione in Visual Basic.
Ad esempio, l’istruzione
incollerà il contenuto grafico degli appunti nella picture box chiamata Immagine.
incollerà il contenuto testuale degli appunti nella casella di testo chiamata CasellaTesto.
Un altro oggetto globale molto importante è Screen che permette di ottenere preziosissime informazioni, per esempio, sulla risoluzione dello schermo.
Un problema molto comune è quello che riguarda la centratura della nostra applicazione rispetto allo schermo: essa può infatti non essere correttamente visualizzata in tutte le risoluzioni. E’ quindi necessario adottare una procedura che permetta di centrare automaticamente qualsiasi form qualunque sia la risoluzione adottata.
Ecco la subroutine che fa al caso nostro:
Sub CenterForm(frm As Form)
On Error Resume Next
Dim iTop, iLeft As Integer
If frm.WindowState 0 Then Exit Sub
iTop = (Screen.Height - frm.Height) \ 2
iLeft = (Screen.Width - frm.Width) \ 2
If iTop And iLeft Then
frm.Move iLeft, iTop
End If
End Sub
L’oggetto globale Printer consente di interagire con tutte le impostazioni relative alle stampanti collegate.
e Printer.PrintForm
consentono di stampare rispettivamente delle stringhe di testo, immagini contenute nelle relative picture box e interi form unitamente con tutto il loro contenuto.
L’oggetto globale Debug viene usato per inviare alla finestra Immediata di Visual Basic delle stringhe di testo. In questo modo, utilizzando l’apposita istruzione Debug.Print
, si avrà un ulteriore metodo per verificare il corretto funzionamento del programma, in particolare per controllare i valori restituiti durante la sua esecuzione.