Lezione 6: Gli oggetti globali

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 funzion...
Lezione 6: Gli oggetti globali

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:

Open "borsa.dat" for Input As #1

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:

Open Appl + "borsa.dat" for Input As #1

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…

App.PrevIstance

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.

Clipboard.Clear

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

Immagine.Picture = Clipboard.GetData( )

incollerà il contenuto grafico degli appunti nella picture box chiamata Immagine.

CasellaTesto.Picture = Clipboard.GetText( )

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.

Printer.Print, Printer.PaintPicture

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.

Ti consigliamo anche

Link copiato negli appunti