Sei sulla pagina 1di 4

PROGRAMMAZIONE VISUALE A OGGETTI (OOP)

1. Concetti teorici
Per implementare un programma con un linguaggio di programmazione pu essere utile costruire un elemento mediante un insieme di dati invece che con un singolo dato (procedimento tipico della programmazione imperativa). Un elemento costituito da un gruppo di dati viene chiamato in informatica oggetto. Un oggetto racchiude dati e codice in un unico involucro. Ci permette una riusabilit che pu far diminuire il tempo di sviluppo e aumentare la produttivit del programmatore. La definizione delloggetto viene effettuata tramite una struttura apposita, la classe. Le classi contengono tutte le informazioni utili concernenti loggetto, ovvero le variabili usate, le procedure e le funzioni che operano su di esso. Negli ultimi anni la programmazione a oggetti si sviluppata molto rapidamente. La novit pi importante degli ultimi tempi la nascita della programmazione visuale a oggetti (basta pensare alle continue immissioni sul mercato di linguaggi di questo tipo). Per visuale si intende un linguaggio che, oltre alle routine della programmazione a oggetti tradizionale, comprende la possibilit di sfruttare gli oggetti del sistema operativo su cui stato progettato il linguaggio (come pulsanti, barre di scorrimento, caselle di testo,). In questo documento abbiamo preso in considerazione la versione 5 del linguaggio DELPHI della Borland Inprise Corporation, che sfrutta il sistema operativo Windows. Naturalmente, le illustrazioni di seguito riportate, potrebbero non essere esatte per le successive versioni di DELPHI o per altri linguaggi dello stesso tipo (ad es. VISUAL BASIC).

2. Struttura del linguaggio DELPHI


Allavvio del linguaggio il programmatore si trova davanti quattro componenti principali: Pannello degli oggetti: si trova nella parte superiore dello schermo e comprende tutti gli oggetti del sistema operativo forniti dal linguaggio; Object Inspector: fornisce propriet e eventi (che tratteremo dopo) disponibili riguardo alloggetto correntemente selezionato; Form: la schermata che vede concretamente lutente quando verr lanciata lapplicazione. Su di essa, infatti, dovranno essere inseriti, se necessario, gli oggetti; Finestra di Codice: contiene il codice del programma, basato sul linguaggio Object Pascal. LObject Pascal levoluzione orientata a oggetti del noto linguaggio ad alto livello Pascal.

Pannello degli oggetti Object Inspector Finestra di Codice Form

In un linguaggio visuale gli oggetti hanno tre componenti fondamentali: Propriet (o attributi): sono delle variabili che apportano modifiche alle propriet visuali degli oggetti (lunghezza, larghezza, colore, bordi, ); Metodi: sono normali sottoprogrammi che contengono istruzioni riguardanti loggetto (ad esempio, un oggetto di tipo TMediaPlayer, che riproduce file multimediali, ha il metodo RUN che esegue il file multimediale, il metodo STOP che ne ferma lesecuzione, ecc.). Eventi: sono chiamati in causa quando lutente agisce su un oggetto (ad esempio, un utente causa un evento su un pulsante quando esegue su di esso un clic, un doppio click, passa su di esso il puntatore del mouse, ecc.); generano un metodo con le istruzioni da eseguire quando vengono richiamati; A questo punto necessario spendere alcune parole su un concetto molto importante: lereditariet. Lereditariet indica lo strumento attraverso il quale un oggetto di una classe pu ereditare propriet e metodi da una classe padre. Ad esempio, loggetto TEdit, concernente una casella di testo, lantenato delloggetto TMaskEdit, concernente una Edit personalizzata. Pi in generale, un oggetto che discende da un altro, oltre agli stessi metodi, propriet ed eventi delloggetto padre, ne ha anche di altri nuovi, specifici per lo scopo delloggetto.

3. Primi passi di programmazione


Veniamo ora alla programmazione vera e propria. Facciamo un primo semplice programma: gli oggetti sono una scritta e un pulsante: al click del pulsante la scritta scompare, riapparendo al successivo click, e cos via. Per risolvere il problema ci basta inserire i due oggetti (Button e Label, entrambi facenti parte della categoria Standard) nella Form mediante il cosiddetto drag-drop (trascinamento); selezionare il pulsante; premere sulla linguetta degli eventi (EVENTS) nellObject Inspector: appariranno gli eventi disponibili delloggetto selezionato. Fare doppio click sulla casella di testo corrispondente allevento che ci serve, nel nostro caso OnClick: ci apparir automaticamente la Finestra di Codice con il metodo generato dallevento chiamato in cui dobbiamo inserire le istruzioni da svolgere nel momento in cui lutente effettuer un clic sul pulsante. Nel nostro caso basta una sola istruzione: Label1.Visible := not Label1.Visible; in cui si richiama lattributo booleano Visible delloggetto Label1, in cui True sta per visibile e False sta per nascosto. Dopo aver svolto questo programma si pu provare a fare la stessa cosa modificando gli altri attributi di questo e anche di altri oggetti. Ricordiamo che gli attributi possono essere anche di altri tipi (stringhe, valori interi, ecc.). Per un principiante effettuare questi semplici programmi molto utile per iniziare ad avere dimestichezza con questo tipo di programmazione. Frequentemente in un programma potremmo aver bisogno di una segnalazione mediante messaggio di breve testo: per questo pu rivelarsi utile la seguente funzione fornita dal Delphi: ShowMessage(Testo); Esempio di messaggio a video

4. Cos una Unit


Se si nota con attenzione un progetto notiamo che il codice che scriviamo, ad esempio i metodi richiamati dagli eventi, viene inserito in una determinata Unit. In un programma ciascuna Unit contiene il codice corrispondente a una Form, ovvero le variabili e i metodi associati agli oggetti contenuti nella Form stessa. La Unit in DELPHI inizialmente impostata cos: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} end. in cui si possono distinguere: Interface: la parola chiave che indica al compilatore la parte iniziale della Unit (ovvero quella dove si dichiarano i dati). La fine di tale parte viene dichiarata con la parola implementation; Uses: seguita dalla dichiarazione delle Unit che utilizzer il programma; Type: come in Pascal, definisce i tipi di variabili non compresi tra i predefiniti dal linguaggio; Private: definisce tipi e variabili utilizzabili solo nella Form corrente; Public: definisce tipi e variabili utilizzabili in tutto il programma; Var: seguita dalla dichiarazione delle variabili; Implementation: la parola chiave che indica al compilatore la seconda parte della Unit, ovvero quella dove si definiscono i dati. In particolare si inseriscono le istruzioni dei metodi concernenti gli eventi degli oggetti.

5. Implementazione di programmi a pi finestre


Supponiamo di dover costruire un programma in cui si debba passare da una finestra a unaltra. Dunque, di Form adesso ce ne vorranno due. Per creare una nuova Form basta cliccare il tasto (New Form) situato accanto al pannello degli oggetti. Per prima cosa, procediamo alla creazione della Form e salviamo la relativa Unit (solitamente il linguaggio nomina la nuova Unit Unit2). Dopodich nella Unit1 inseriamo il nome della nuova Unit re nella clausola USES. Poi procediamo in questo modo: 1. Nella Form1 inseriamo un pulsante (Button1) e vi immettiamo la Caption Passa allaltra Form; 2. Generiamo il metodo concernente levento OnClick sul pulsante (nel modo gi descritto al paragrafo 2); 3. Impostiamo la procedura nel modo seguente: procedure TForm1.Button1Click(Sender: TObject); begin Unit2.Form2.ShowModal; end; La funzione ShowModal permetter la visualizzazione della schermata Form2. 4. Facciamo girare il programma.

Autore: Fausto Carotenuto