Corso di Delphi

Parliamo del primo programma

 

Ora facciamo sul serio.

Come avete visto, un programma Object Pascal è sostanzialmente simile ad uno Turbo Pascal. Quello che rende Delphi molto diverso dal primo è semplicemente ciò che è nel programma e non la sua struttura generale.
In questo corso si assume la conoscenza del Turbo Pascal – al cui linguaggio comunque sono state apportate delle estensioni che vedremo più avanti. Ora vedremo meglio le differenze.

 Innanzi tutto, la programmazione in Delphi è detta “per componenti”. Cosa significa questo? Significa che per realizzare l’interfaccia utente di una applicazione si hanno a disposizione diversi “mattoni elementari” che sono disposti in un rettangolo con un titolo. Questi mattoni elementari possono essere personalizzati al fine di ottenere un qualcosa di leggermente diverso nella forma e che però non vari nella sostanza.
Questa definizione è in parte inesatta perché parziale, ma vedremo tra breve il perché di questa mia mancanza di chiarezza.

La programmazione ad oggetti in Turbo Pascal ed in Delphi

In TP (Turbo Pascal) la programmazione per oggetti è diversa che in Delphi.
Innanzi tutto non esiste in TP una “programmazione ad oggetti” antecedente alla versione 5.5.
In secondo luogo, il concetto stesso di programmazione ad oggetti in Delphi è interpretato in modo diverso.
In TP, infatti, non è presente il fondamentale concetto di “classe”, che è invece presente in Delphi.

Una classe è  la rappresentazione in codice del tipo di oggetto e di come esso si relaziona al resto del mondo. Esaminiamo come banale esempio un’automobile.
Volendo creare un oggetto TAutomobile in Delphi possiamo semplicemente creare una classe automobile ed istanziarla. La variabile di tipo TAutomobile sarà il nostro oggetto. Vediamo dunque come strutturare questa classe.

Prima di andare avanti, però, dobbiamo introdurre alcuni concetti, presenti in Delphi, e totalmente assenti in Pascal.
Il concetto principale che volevo mostrarvi è quello di “proprietà”.
Una proprietà è una caratteristica di una classe.
Ad esempio, prendiamo un’automobile: TUTTE le automobili hanno ruote, fari, un’altezza, una larghezza, una profondità, ecc. Tutte queste caratteristiche sono “proprietà” di un’automobile. Parlando in gergo Delphi, tutte queste caratteristiche sono proprietà della classe automobile. Guardiamo ora com’è descritta un’automobile con gli oggetti TP e con le classi Delphi:

Turbo Pascal:

type TAutomobile = object
         private
           CarLenngth : Integer;
            CarColor : Integer;
          public
            function GetCarColor : Integer;
            procedure SetCarColor( Value : Integer );
            function GetCarLength : Integer;
           procedure SetCarLength( Value : Integer );
       end;




Delphi:

type TAutomobile = class
         private
        
  FCarLength : Integer;
           FCarColor : Integer;
          
         Public
         
 property  CarLength : Integer read FCarLength write FCarLength;
           property  CarColor : Integer read FCarColor write FCarColor;
       end;

Potete notare che ci sono diverse differenze nei due approcci: quello di TP basato sugli oggetti (object) mentre quello di Delphi è basato sul concetto di classe (class) cui un oggetto appartiene. Un oggetto MiaAutomobile non sarà più quindi un’istanza di un oggetto TAutomobile, ma un riferimento ad un oggetto appartenente ad una determinata classe chiamate TAutomobile.  La differenza è tutta nel concetto: vale a dire che mentre nel TP ci si riferisce alle entità concrete, in Delphi ci si riferisce ai modelli d’entità concrete. Vale a dire che una classe è semplicemente una descrizione delle caratteristiche (proprietà) e dei comportamenti (metodi) di un oggetto. La differenza dovrebbe ormai essere chiara e nella prossima lezione vedremo queste differenze nella pratica.
Vedremo, inoltre, un altro modo per dichiarare le proprietà che vi darà la possibilità di capire meglio le sostanziali differenze che intercorrono tra i due sistemi.

Alla prossima!

 

Torna all'indice Generale del corso di Corso di Delphi di Software Planet