Uno dei linguaggi maggiormente diffusi nell'ambito della programmazione classica, è il Turbo Pascal. Questo fu definito il linguaggio ideale per la programmazione strutturata, grazie alla possibilità di raggruppare il codice in blocchi, rendendo così il programma più leggibile e facilitando il lavoro del programmatore.
Con l'introduzione della programmazione ad oggetti (OOP), si è pensato bene di unire la chiarezza e la versatilità del Turbo Pascal con la potenza e la semplicità d'uso della OOP. Dalla comunione di questi due elementi nasce Delphi.
Possiamo affermare, quindi, che Delphi è un linguaggio di programmazione orientato agli oggetti.
Installazione di Delphi
L'installazione di Delphi non è particolarmente difficile; in breve:
Inserite il cd d'installazione nel lettore ed attendete che parta l'autorun.
L'interfaccia del programma di installazione vi proporrà una serie di prodotti da installare (utili nel caso che Delphi sia già stato installato), cliccate Delphi.
Digitate il codice seriale e cliccate Next.
Dopo la finestra informativa sul copyright, vi verrà chiesto di scegliere un tipo di installazione (tipica, compatta o personalizzata), scegliete tipica.
Unitamente all'ambiente di sviluppo Delphi, viene data la possibilità di installare un tipo di database chiamato Interbase, ciò può essere fatto semplicemente spuntando la casella installa Interbase client.
Successivamente vi verrà chiesto il percorso sul vostro hard disk dove copiare i file da installare, lasciate le impostazioni proposte dal programma.
Ancora, il programma vi chiederà il gruppo di programmi del menu Start nel quale installare Delphi e i suoi strumenti, lasciate Borland Delphi.
Cliccate ancora Next, il programma riassumerà le impostazioni prima di partire con l'installazione vera e propria, cliccate installa e partirà la copia dei file necessari.
Al termine, il programma vi avvertirà dell'avvenuta installazione, riavviate il pc e sarete pronti a partire.
Nelle diverse lezioni della nostra guida affronteremo le caratteristiche principali di Delphi per fornire al lettore una panoramica completa del linguaggio, delle sue potenzialità e della sintassi di programmazione.
Il programma di installazione crea nel menu start di windows, un gruppo di programmi chiamato Borland Delphi; accedetevi e scegliete la voce Delphi. In questo modo si ha accesso all'ambiente di sviluppo.
L'interfaccia, apparirà abbastanza familiare, a coloro che hanno utilizzato prodotti come Visual Basic. Nella parte alta, si trovano raggruppate una serie di voci, (Standard, Additional ecc.), tale raggruppamento...
Un componente, come già accennato, è una sorta di oggetto, che possiede delle caratteristiche dette Proprietà e genera degli eventi. Un componente viene controllato attraverso la manipolazione delle sue proprietà e testando gli eventi che esso può generare.
Delphi è provvisto di una ricca schiera di componenti, deputati a diverse funzioni, di seguito vedremo i più comuni. Costruiremo una piccola...
Delphi è in realtà un'implementazione ad oggetti del ben noto Turbo Pascal, di conseguenza ha ereditato da quest'ultimo l'organizzazione strutturale del codice.
Il codice viene diviso in blocchi, nei quali viene definito in modo chiaro l'inizio e la fine.
L'inizio di un blocco di codice viene contrassegnato con la parola riservata Begin, mentre la fine del blocco viene indicata da End.
Begin
linee...
Come degno successore del Turbo Pascal, Delphi ne ha ereditato la sintassi.
Come già anticipato nel capitolo precedente, ogni blocco di codice (quindi una sequenza di istruzioni), deve essere racchiusa tra le parole Begin e End.
Il simbolo ; ha un importanza fondamentale, in quanto indica la fine di un'istruzione per esempio:
read(valore);
Non ha importanza ora a cosa serve questa istruzione, ma...
In Delphi, come in altri linguaggi, possono essere utilizzati diversi tipi di dati, in base alle esigenze.
In pratica esistono tipi dati numerici e non numerici, segue un elenco dei tipi di dato numerici interi:
Integer 16 bit con segno
Cardinal 32 bit senza segno
Shortint 8 bit con segno
Smallint 16 bit con segno
Longint...
Le istruzioni condizionali sono fondamentali in qualsiasi linguaggio, che sia ad oggetti o classico.
La verifica di determinate condizioni, viene testata con l'istruzione If, in base alla seguente sintassi:
If condizione Then azione
Dove azione rappresenta una o più istruzioni da eseguire nel caso in cui l'azione si verifichi.
Unitamente all'istruzione If, vengono usati degli operatori, detti Condizionali, essi sono:
= uguale
>...
Le istruzioni di iterazione sono particolari comandi che permettono la ripetizione ciclica di un blocco di istruzioni.
Esistono diversi comandi per, con diverse modalità di utilizzo, per eseguire un ciclo. In questa lezione esamineremo i metodi maggiormente utilizzati in Delphi.
L'istruzione While, permette la generazione di cicli, in base alla seguente sintassi:
while espressione do azione
dove espressione è una condizione che deve...
Gli array permettono la memorizzazione di insiemi di elementi dello stesso tipo. In effetti si tratta di una variabile in cui vengono memorizzati più valori dello stesso tipo, separati da un indice numerico che va da zero (0) a "N" ed indentificabili facendo riferimento al nome della variabile associata all'indice.
Esistono array monodimensionali la cui dichiarazione avviene nel seguente modo:
var...
Esistono diverse funzioni per la manipolazione delle stringhe, vedremo le principali. Prima di tutto è importante dire che una stringa va compresa tra apici '. Inoltre esistono dei caratteri speciali come il salto ad una riga successiva, questi vengono indicati col valore ASCII corrispondente preceduto dal simbolo #.
Il salto ad una riga successiva, per esempio, si indica con #13....
Nell'ambito di un programma Delphi torna spesso utile manipolare elementi come data ed ora. Esistono diverse funzioni per la gestione delle date; esaminiamo le principali.
FunzioneDescrizioneDaterestituisce la data corrente di sistemaDateToStrtrasforma una data in formato stringaStrToDatetrasforma una stringa in data
Posizionatevi all'interno della finestra del codice Form e digitate:
Lblmess.Caption := DateToStr(Date);
In questo modo, la data di sistema, ottenuta con la funzione...
Di seguito vedremo come effettuare una connessione ad un database di tipo Paradox attraverso Delphi, per poter visualizzare i dati di una tabella in esso contenuta.
Partite con un nuovo progetto, selezionate dal palette, nella sezione Data Access, il componente Table, incollatelo sul Form.
Questo è invisibile in fase di esecuzione, la sua funzione è quella di effettuare la connessione ad...
Nel precedente capitolo della nostra Guida a Delphi, abbiamo visto come accedere alle informazioni presenti nelle tabelle di un database. Tuttavia, le informazioni possono anche risiedere in file di testo, generalmente utilizzati per un accesso sequenziale. In questo capitolo, esploreremo come, in Delphi, sia possibile aprire un file di testo e accedere alle informazioni in esso contenute.
IndicePreparazione del progettoDichiarazione...
Abbiamo a cuore la tua privacy
Noi e i nostri partner archiviamo e/o accediamo a informazioni su un dispositivo. Cookie, identificatori del dispositivo o analoghi identificatori online (ad es. identificatori basati sull’accesso, identificatori assegnati casualmente, identificatori basati sulla rete) insieme ad altre informazioni (ad es. tipo di browser e informazioni sul browser, lingua, dimensioni dello schermo, tecnologie supportate, ecc.) possono essere archiviati sul o letti dal dispositivo dell’utente per riconoscerlo ogni volta che l’utente si connette a un’app o a un sito web, per una o più finalità qui presentate.
Con il tuo consenso, i tuoi dati possono essere utilizzati per quanto segue: Pubblicità e contenuti personalizzati, misurazione delle prestazioni dei contenuti e degli annunci, ricerche sul pubblico, sviluppo di servizi; Dati di geolocalizzazione precisi e identificazione attraverso la scansione del dispositivo.
I tuoi dati personali verranno trattati e le informazioni dal tuo dispositivo (cookie, identificatori univoci e altri dati del dispositivo) possono essere memorizzate, consultate e condivise con 179 partner, o utilizzate specificamente da questo sito o questa app. Alcuni fornitori potrebbero trattare i tuoi dati personali sulla base dell'interesse legittimo, al quale puoi opporti gestendo le tue opzioni qui sotto. Puoi revocare il tuo consenso in qualsiasi momento facendo clic sul link delle impostazioni sulla privacy situato in fondo alla pagina.
Puoi scegliere come utilizzare i tuoi dati personali. Noi e i nostri partner desideriamo il vostro permesso per fare quanto segue.
Alcuni partner non chiedono il tuo consenso al trattamento dei tuoi dati, ma fanno affidamento sul loro legittimo interesse commerciale. Guarda il nostro elenco di partner per conoscere gli scopi per cui credono di avere un interesse legittimo e come puoi opporti.
Questi sono i nostri partner pubblicitari che partecipano al Framework di trasparenza e consenso dello IAB, creato per garantire un uso trasparente e corretto dei dati.
Questi fornitori sono registrati su Google, ma non nel Transparency & Consent Framework di IAB Europe.
{"b_dec":{"def":"Rifiuta e chiudi","res":"Rifiuta e chiudi"},"priclt":"\u003Cdiv class=\u0022cl-consent-settings cl-consent-settings--is-hidden\u0022\u003E\u003Cstyle\u003E.cl-consent-settings{position:fixed;left:16px;bottom:calc(28px + var(--__lxG___css_var_privacy_icon_auto, 0px));z-index:100;transition:all 0.15s ease-in-out;transform:translateY(0)}.cl-consent-settings--is-hidden{transform:translateY(70px);opacity:0}.cl-consent-settings__hint{border-radius:4px;background:#282A3C;box-shadow:0 4px 24px 0 rgba(0,0,0,.15);color:#FFFCF2;position:absolute;right:-195px;top:0;bottom:0;margin:auto;height:40px;width:175px;display:flex;align-items:center;justify-content:center;padding:4px 12px;font-size:12px;font-weight:400;line-height:16px;cursor:default;user-select:none;transition:transform 0.3s ease,opacity 0.3s ease;transform:translateX(-22px);opacity:0;pointer-events:none;z-index:-1}.cl-consent-settings__hint::after{content:\u0022\u0022;position:absolute;left:-16px;top:0;bottom:0;margin:auto;width:0;height:0;border:0 solid transparent;border-top-width:12px;border-bottom-width:12px;border-right:16px solid #282A3C}.cl-consent-settings__btn{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;border:none;background-color:#4b81e8!important;background-position:center center;background-size:30px 30px;background-repeat:no-repeat;box-shadow:0 0 20px 0 rgba(0,0,0,.35);z-index:70;position:relative;text-decoration:none;cursor:pointer}.cl-consent-settings__btn::before{content:\u0022\u0022;-webkit-mask-image:url(\u0022data:image\/svg+xml,%3Csvg xmlns=\u0027http:\/\/www.w3.org\/2000\/svg\u0027 width=\u002730\u0027 height=\u002730\u0027 viewBox=\u00270 0 30 30\u0027 fill=\u0027none\u0027%3E%3Cpath fill=\u0027%23fff\u0027 d=\u0027M15 2.813C8.28 2.813 2.812 8.28 2.812 15S8.28 27.188 15 27.188c6.72 0 12.188-5.468 12.188-12.188C27.188 8.28 21.72 2.812 15 2.812Zm0 1.874c5.686 0 10.313 4.627 10.313 10.313 0 5.686-4.627 10.313-10.313 10.313-5.686 0-10.313-4.627-10.313-10.313C4.688 9.314 9.314 4.687 15 4.687Zm-1.875 3.75a.937.937 0 1 0 0 1.875.937.937 0 0 0 0-1.874Zm5.156.938a1.406 1.406 0 1 0 0 2.812 1.406 1.406 0 0 0 0-2.812Zm-7.968 2.813a1.875 1.875 0 1 0 0 3.749 1.875 1.875 0 0 0 0-3.75Zm5.624 1.874a.938.938 0 1 0 0 1.876.938.938 0 0 0 0-1.876Zm4.688.938a.938.938 0 1 0 0 1.875.938.938 0 0 0 0-1.875Zm-8.906 2.813a1.406 1.406 0 1 0 0 2.812 1.406 1.406 0 0 0 0-2.813Zm6.562.937a1.406 1.406 0 1 0 0 2.813 1.406 1.406 0 0 0 0-2.813Z\u0027\/%3E%3C\/svg%3E\u0022);mask-image:url(\u0022data:image\/svg+xml,%3Csvg xmlns=\u0027http:\/\/www.w3.org\/2000\/svg\u0027 width=\u002730\u0027 height=\u002730\u0027 viewBox=\u00270 0 30 30\u0027 fill=\u0027none\u0027%3E%3Cpath fill=\u0027%23fff\u0027 d=\u0027M15 2.813C8.28 2.813 2.812 8.28 2.812 15S8.28 27.188 15 27.188c6.72 0 12.188-5.468 12.188-12.188C27.188 8.28 21.72 2.812 15 2.812Zm0 1.874c5.686 0 10.313 4.627 10.313 10.313 0 5.686-4.627 10.313-10.313 10.313-5.686 0-10.313-4.627-10.313-10.313C4.688 9.314 9.314 4.687 15 4.687Zm-1.875 3.75a.937.937 0 1 0 0 1.875.937.937 0 0 0 0-1.874Zm5.156.938a1.406 1.406 0 1 0 0 2.812 1.406 1.406 0 0 0 0-2.812Zm-7.968 2.813a1.875 1.875 0 1 0 0 3.749 1.875 1.875 0 0 0 0-3.75Zm5.624 1.874a.938.938 0 1 0 0 1.876.938.938 0 0 0 0-1.876Zm4.688.938a.938.938 0 1 0 0 1.875.938.938 0 0 0 0-1.875Zm-8.906 2.813a1.406 1.406 0 1 0 0 2.812 1.406 1.406 0 0 0 0-2.813Zm6.562.937a1.406 1.406 0 1 0 0 2.813 1.406 1.406 0 0 0 0-2.813Z\u0027\/%3E%3C\/svg%3E\u0022);background-color:#ffffff!important;mask-repeat:no-repeat;width:30px;height:30px}.cl-consent-settings__btn:hover+.cl-consent-settings__hint{transform:translateX(0);pointer-events:all;opacity:1}.cl-consent-settings__user{width:18px;height:18px;border-radius:50%;padding:0;border:1px solid #fff;background-color:#00AD98;background-image:url(\u0022data:image\/svg+xml,%3Csvg xmlns=\u0027http:\/\/www.w3.org\/2000\/svg\u0027 viewBox=\u00270 0 10 11\u0027 width=\u002710\u0027 height=\u002711\u0027 fill=\u0027none\u0027%3E%3Cpath fill=\u0027%23fff\u0027 stroke=\u0027%23fff\u0027 stroke-width=\u0027.1\u0027 d=\u0027M6.858 6.262A3.3 3.3 0 0 0 8.2 3.597C8.2 1.796 6.764.325 5 .325s-3.2 1.47-3.2 3.272c0 1.094.53 2.07 1.342 2.665A4.67 4.67 0 0 0 .45 10.5v.05h1v-.05c0-2.012 1.585-3.632 3.55-3.632s3.55 1.62 3.55 3.632v.05h1v-.05a4.67 4.67 0 0 0-2.692-4.238ZM5 1.345c1.22 0 2.2 1.002 2.2 2.252s-.98 2.25-2.2 2.25-2.2-1-2.2-2.25.98-2.252 2.2-2.252Z\u0027\/%3E%3C\/svg%3E\u0022);background-position:center center;background-size:9px 10px;background-repeat:no-repeat;z-index:75;position:absolute;top:-2px;right:-8px;text-decoration:none;visibility:hidden}\u003C\/style\u003E\u003Cbutton type=\u0022button\u0022 class=\u0022cl-consent-settings__btn\u0022\u003E\u003Cspan class=\u0022cl-consent-settings__user\u0022\u003E\u003C\/span\u003E\u003C\/button\u003E\u003Cdiv class=\u0022cl-consent-settings__hint\u0022\u003EImpostazioni sulla privacy e sui cookie\u003C\/div\u003E\u003C\/div\u003E","pricds":"show_in_the_footer","pricaa":1,"vcnt":179,"_t":{"titles":"Purposes|Purposes (Legitimate Interest)|Features|Special Features|Special Purposes|Scopi|Scopi (Interesse Legittimo)|Caratteristiche|Caratteristiche Speciali|Scopi Speciali","sp3_ret":"Le scelte che fai riguardo agli scopi e alle entità elencati in questo avviso sono salvate per un massimo di $sp3_retention$ nei seguenti cookie e variabili di archiviazione locale","ill_pp_ttl":"Esempi di Utilizzo","vndr_dtls_con":"Trattamento dei dati basato sul tuo consenso","vndr_dtls_li":"Trattamento dei dati basato sul legittimo interesse","vndr_dtls_fi":"Trattamento dei dati basato sul tuo consenso o interesse legittimo","cks_strg_dur":"dura $DURATION$","cks_strg_ses":"per la sessione attuale","cks_strg_not_used":"non utilizzato","cks_strg_dur_s":"sec","cks_strg_dur_i":"min","cks_strg_dur_h":"ora(e)","cks_strg_dur_d":"giorno(i)","cks_strg_dur_m":"mese(i)","cks_strg_dur_y":"anno(i)","vr_dts_purl":"URL della politica sulla privacy","vr_dts_dsurl":"URL di divulgazione dell\u0027archiviazione del dispositivo","vr_dts_dsurl_h":"Informazioni aggiuntive su archiviazione e operazioni","vr_dts_clmurl":"URL della richiesta di interessi legittimi","vr_dts_datac":"Categorie di dati","vr_dts_datac_h":"Categorie di dati raccolti in relazione agli scopi","vr_dts_stdret":"Conservazione dei dati standard (giorni)","vr_dts_stdret_h":"Il periodo standard è utilizzato a meno che non sia dichiarato un altro periodo per scopi specifici.","vr_dts_ret":"Conservazione dei dati (giorni)","vr_dts_usecks":"Usa i cookie","vr_dts_usecks_h":"Indica se il fornitore utilizza l\u0027archiviazione dei cookie (sessione o altro). SÌ indica che l\u0027archiviazione dei cookie è utilizzata. NO - l\u0027archiviazione dei cookie non è utilizzata.","vr_dts_usecksy":"Sì","vr_dts_usecksn":"No","vr_dts_cksage":"Età massima del cookie","vr_dts_cksage_h":"Il numero di secondi che rappresenta la durata potenziale più lunga per l\u0027archiviazione dei cookie su un dispositivo. Se un fornitore utilizza più cookie con durate diverse, rappresenta il cookie con la durata più lunga. Un numero negativo o 0 indica l\u0027archiviazione della sessione simile alla specifica Set-Cookie.","vr_dts_cksref":"Aggiornamento cookie","vr_dts_cksref_h":"Indica se i cookie vengono aggiornati dopo essere stati inizialmente impostati. SÌ - indica che il fornitore può aggiornare i cookie. NO - indica che il fornitore non aggiorna i cookie ogni volta che il browser viene ricaricato.","vr_dts_noncks":"Utilizza l\u0027accesso senza cookie","vr_dts_noncks_h":"Indica l\u0027uso da parte del fornitore di archiviazione non-cookie e accesso alle informazioni già memorizzate sul dispositivo di un utente. SÌ - indica che l\u0027accesso senza cookie è utilizzato. NO - indica che l\u0027archiviazione e l\u0027accesso senza cookie alle informazioni già memorizzate sul dispositivo di un utente non vengono utilizzati.","vr_dts_hgetl":"Limite della lunghezza della richiesta HTTP GET (Kbyte)","vr_dts_hgetl_h":"Dimensione massima della richiesta GET in kilobyte per aiutare a diagnosticare i problemi con il passaggio della stringa TC e limitare le stringhe di dimensioni eccessive.","vr_dts_addtnl":"Dati aggiuntivi","vr_dts_legaddr":"Indirizzo completo dell\u0027entità legale","vr_dts_b2bcont":"Dettagli di contatto B2B","vr_dts_terscp":"Ambito territoriale","vr_dts_terscp_h":"Indica le giurisdizioni UE\/SEE\/UK in cui il fornitore opera con TCF. Nota che questo è diverso dalla sede del fornitore.","vr_dts_env":"Ambiente","vr_dts_env_h":"Indica gli ambienti in cui il venditore opera","vr_dts_tserv":"Tipo di servizi","vr_dts_tserv_h":"Indica il tipo di servizi offerti dal venditore","vr_dts_trnsfout":"Trasferimenti internazionali fuori dall\u0027UE\/SEE","vr_dts_trnsfout_h":"Indica le giurisdizioni UE\/SEE\/UK in cui il fornitore opera con TCF. Nota che questo è diverso dalla sede del fornitore.","vr_dts_trnsfmch":"Meccanismi di trasferimento internazionale"}}