Lezioni Di Delphi
Lezioni Di Delphi
Lezioni di Delphi
Delphi un linguaggio di programmazione tra i pi evoluti per lambiente Windows. I programmi che vi si sviluppano sono quindi caratterizzati dalla presenza di tutti quegli oggetti grafici propri del sistema operativo di casa Microsoft. Ci vuol dire che linterfaccia utente risulter ricca di finestre, bottoni, caselle di testo, etichette e di molto altro ancora. Una volta avviato Delphi ecco la schermata (Figura 1) che viene proposta alla vista del programmatore. Questa mostra ad ogni avvio un form vuoto (la finestra intitolata Form1). Osservando meglio la figura possiamo notare la presenza di quattro finestre differenti; quella pi in alto delle altre intitolata Delphi 7 Project1 e si compone di tre sezioni: 1. Barra dei menu 2. Scelta rapida 3. Barra degli strumenti
1
Figura 1
(1) La barra dei menu raccoglie, come in tutte le applicazioni, ogni funzione gestita da Delphi. (2) Questa sezione in realt ripropone come icone dirette alcune tra le pi importanti funzionalit appartenenti alla barra dei menu Standard, View, Debug e Custom. (3) Questa sezione anche detta Component Palette e raccoglie lintera collezione di oggetti visuali e non. Il suo aspetto personalizzabile nellordine. Inoltre, possibile aggiungere funzionalit supplementari scaricando altri componenti dal WEB o direttamente prodotti dal programmatore.
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
Lezioni di Delphi
Le principali caratteristiche di Delphi : E VISUALE; USA IL LINGUAGGIO OBJECT PASCAL; E UN LINGUAGGIO G.P.; USA LAPPROCCIO R.A.D.
E VISUALE: vuol dire che a disposizione del programmatore sono tutti gli oggetti appartenenti al sistema operativo (finestre, casella di testo, etichette, bottoni, caselle combinate, ecc.) oltre che permettere la realizzazione di programmi a 32 bit e quindi pi veloci rispetto alle applicazioni DOS (quello dei vecchi computers 8088, 8086 ecc.)
Basta scegliere il componente che serve dalla Barra degli strumenti (la component palette nel riquadro) e trascinarlo sulla finestra del programma (FORM) per poterlo usare subito, oppure fare doppio click sullicona denominata pulsante indicatore per ottenere lo stesso effetto. Volendo fare un paragone, come se avessimo a nostra disposizione una scatola di costruzioni, con un numero illimitato di pezzi aventi forme e colori diversi, basta saperli assemblare nel modo giusto per ottenere un qualsiasi oggetto.
Figura 2
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
Lezioni di Delphi
USA IL LINGUAGGIO OBJECT PASCAL: per poter programmare in Delphi bisogna usare la sintassi del linguaggio Pascal, pertanto il programma scritto in Delphi conforme allObject Pascal. LObject Pascal la naturale evoluzione del Turbo Pascal, sempre della Borland che ha prodotto Delphi con il preciso scopo di introdurre i programmatori Pascal alla programmazione Visuale e orientata agli oggetti ed eventi tipica dei linguaggi di programmazione dellultima generazione. Delphi, come pochi altri, un linguaggio di programmazione indipendente dal sistema operativo installato sul computer in uso e ci permette quindi lesecuzione dei programmi sviluppati su qualsiasi computer (non solo Windows ma anche Linux, Unix ecc.) ad interfaccia utente grafica, ma senza trascurare i vantaggi della compilazione Pascal.
E UN LINGUAGGIO G.P. E USA LAPPROCCIO R.A.D.: G.P. sta per General Purpose in altre parole con Delphi qualsiasi tipo di programma pu essere realizzato (gestionale, scientifico, grafico, commerciale, per Internet); R.A.D. sta per Rapid Application Development (Sviluppo Rapido di Applicazioni) significa che la realizzazione di un programma (dallidea alleseguibile) molto rapida e snella rispetto sia ai linguaggi di precedente generazione che a molti dei suoi pi diretti concorrenti (VisualBasic tra tutti). Occorre anche sottolineare lestrema flessibilit in quanto permette un interfacciamento ottimale a qualsiasi tipo di data base per la gestione degli archivi di notevole dimensione.
Figura 3
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
Lezioni di Delphi
A differenza di quanto visto alla pagina precedente, una nuova metodologia introdotta da alcuni anni consiste nel creare programmi mediante lassemblaggio di componenti visuali costituenti linterfaccia grafica a sviluppo RAD. Volendo calcolare la somma di due numeri per realizzare il form (quello che verr visualizzato durante lesecuzione del programma) si dispongono, utilizzando il mouse, come in un collage, gli oggetti prescelti dalla barra degli strumenti e durante lesecuzione lutente cliccher nelle caselle di testo inserendo i valori. Il risultato apparir nella casella di testo omonima cliccando sul bottone Somma.
Figura 4
Prima di apprendere come sistemare i vari oggetti presenti in fig.4 utile conoscere meglio i componenti di uso pi frequente della Barra degli strumenti (Component palette). In essa il programmatore trova tutto ci che serve a realizzare unapplicazione completa e professionale: effettuare operazioni di input ed output; visualizzazione di messaggi; gestione di archivi; creazione di menu e barre di strumenti personalizzate per i propri programmi; esecuzione di funzioni multimediali; attivit grafiche; produzione di stampe;
18/02/07 5
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
Lezioni di Delphi
La pagina STANDARD
La programmazione con la tecnologia RAD inizia qui. Passiamo ora ad esaminarne in dettaglio gli elementi :
Figura 5
0 1
6 7
10 11 12 13 14 15 16
9. radiobutton
Pulsante di scelta esclusiva a valore booleano
2. mainmenu
Per includere un menu nella propria applicazione
10. listbox
Casella di riepilogo per elencare pi valori
3. popupmenu
Per includere un menu a scelta rapida con oggetti grafici
11. combobox
Casella combinata per visualizzare e scegliere un valore fra tanti
4. label
Etichetta non modificabile dallutente per messaggi o intestazioni
12. scrollbar
Crea e gestisce una barra di scorrimento orizzontale. Quella verticale automaticamente prodotta se il numero di righe supera quello di default
5. edit
Casella di testo modificabile per lInput o lOutput
13. groupbar
Casella di gruppo per contenere pi controlli
6. memo
di caratteri
14. radiogroup
esclusiva a valore booleano
Casella di testo per lInput o lOutput di grandi sequenze Casella di gruppo per contenere pi controlli di scelta
7. button
Pulsante di comando per gestire lelaborazione voluta
15. panel
Pannello per contenere controlli di vario genere
8. checkbox
Pulsante di scelta non esclusiva a valore booleano
16. actionlist
Definisce una lista di controlli da eseguire a scelta come attivit primaria di un form
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
Lezioni di Delphi
La pagina ADDITIONAL
Vediamo ora gli oggetti della pagina ADDITIONAL dei quali, almeno per il momento, ci limiteremo ad usare il solo componente BitButton :
Figura 6
6 7
10 11 12 13 14 15 16
1. BitBtn
Componente di tipo bottone che permette visualizzazione di unimmagine di tipo bitmap
9. ScrollBox
la Crea un contenitore avente barre di scorrimento orizzontale e verticale
2. SpeedButton
10. CheckListbox
Pulsante che visualizza unimmagine senza etichetta. Simile a ListBox ogni voce visualizzata pu essere Questo tipo di componente pu far parte di un gruppo per selezionata come in un componente CheckBox creare una barra degli strumenti
3. MaskEdit
11. Splitter
Casella di testo per linserimento e la modifica dei dati con Componente che permette di ridimensionare durante la possibilit di specificare un particolare formato, come lesecuzione le dimensioni dei controlli allineati nel form un codice postale o un numero telefonico
4. StringGrid
12. Statictext
Crea una griglia simile a quella di un foglio elettronico il Componente non modificabile dallutente simile a Label cui contenuto esclusivamente di significato alfanumerico che per pu avere una propria casella del tipo Edit
5. DrawGrid
Griglia simile a quella contenuto per dati
13.Controlbar
di un foglio elettronico il cui Gestore di componenti per barre di controllo
6. Image
Visulizza una immagine di tipo bitmap, icona o metafile
14. ApplicationEvents
Componente per la gestione degli eventi dipendenti da altri programmi
7. Shape
cerchio che possono essere anche inscritte in una circonferenza
15. ValueListEditor
Disegna figure geometriche del tipo quadrato, rettangolo, Controllo a due colonne per dati di tipo stringa
8. Bevel
Crea linee e poligoni tridimensionali
16. LabelEdit
Componente di tipo Edit con etichetta integrata
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
Lezioni di Delphi
Figura 7
Figura 8
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
Lezioni di Delphi
Adesso per riprodurre la situazione di figura 4 clicchiamo, alla pagina Standard della Barra degli strumenti, sulla casella di testo due volte per ottenere quella per i due numeri da sommare e per il risultato:
Figura 9
ora posizioniamo le caselle di testo trascinandole con il tasto sinistro del mouse:
Figura 10
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
Lezioni di Delphi
Per eliminare la scritta Edit dalla casella di testo un click sinistro del mouse sulla casella e poi nellObject Inspector ci portiamo sulla propriet Text e cancelliamo il valore alla sua destra
Figura 11
Figura 12
Figura 13 I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia 18/02/07 10
Lezioni di Delphi
Aggiungiamo le tre etichette per le caselle di testo cliccando due volte sullicona Label:
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
11
Lezioni di Delphi
Ora selezionando letichetta Label1 nel form ci portiamo sulla propriet Caption dellObject Inspector
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
12
Lezioni di Delphi
Ripetiamo i passaggi sostituendo alla Caption Label2 con il messaggio Secondo numero e la Caption Label3 con il messaggio Risultato
Ora non ci resta che selezionare dalla Barra degli strumenti un Button
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
13
Lezioni di Delphi
Scriviamo la procedura per il calcolo e la visualizzazione della somma cliccando due volte sul bottone + che abbiamo inserito nel form
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
14
Lezioni di Delphi
Come in Pascal le variabili A,B, RIS vanno dichiarate nel programma aggiungiamo perci la dichiarazione :
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
15
Lezioni di Delphi
Ora possibile completare questo primo programma prelevando dalla pagina Additional della Barra degli strumenti un pulsante del tipo Bitbutton di uscita:
La propriet caption del bottone di default (assegnata in automatico) Close. Questa pu essere modificata a nostro piacimento ed corredata anche da una simpatica immagine. Proviamo il programma eseguendolo con questa nuova funzionalit.
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
16
Lezioni di Delphi
Qui importante creare una cartella poich un programma in Delphi a differenza del Pascal composto da pi files. Essi devono essere raccolti in maniera appropriata allinterno della stessa cartella ed occorre assicurarsi che, durante il salvataggio, compaia una finestra per il file di unit (uno per ogni form) ed una seconda per il progetto (project). Alla fine del salvataggio possiamo verificare cosa c nella cartella creata accedendo da Risorse del computer la presenza di sei esecuzione. files che aumenteranno dopo la prima
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
17
Lezioni di Delphi
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
18
Lezioni di Delphi
E salviamo il file di Progetto che collega insieme tutti gli altri files generati da Delphi
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
19
Lezioni di Delphi
Questi sono i file che Delphi ha salvato nella cartella da noi creata
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
20
Lezioni di Delphi
DCU DDP
DDP DFM
DFM DOF
DPR
DPR EXE
File compilato da file pascal File Delphi Diagram Portfolio di supporto al programmatore Copia del file DDp Delphi form file che contiene la descrizione e le propriet di un form e degli altri oggetti visuali del programma Copia di DFM Delphi option file, file testuale delle impostazioni del progetto Delphi project file, il file di progetto contenente il codice sorgente pascal Copia di DPR Executable file, lapplicazione finale per Window File Pascal il codice sorgente di una Unit Copia di Pas Resource file, file contenente licona del progetto
Compilazione Sviluppo
Sviluppo Sviluppo
Sviluppo Sviluppo
Sviluppo
Sviluppo No Compilazione:linking No. Questo file racchiude tutti i fom, unit e risorse compilate Sviluppo Si Sviluppo No Sviluppo di finestre Si di dialogo
Lezioni di Delphi
Questo file la versione eseguibile (.exe) completamente indipendente dalla presenza di Delphi nel senso che totalmente conforme a quanto sviluppato ma non modificabile se non tornando al file di progetto con estensione .dpr. La versione eseguibile di un programma ha il vantaggio di occupare meno spazio di memoria rispetto a quella completa e garantisce al programmatore la propriet esclusiva del lavoro svolto.
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
22
Lezioni di Delphi
Esercizio n. 1
Dopo aver visto come si costruisce un programma, lo studente realizzi un progetto che calcoli la divisione tra due numeri e ne visualizzi il risultato. Suggerimenti 1.E utile ricordare che il risultato della divisione pu essere un valore reale e quindi le variabili del programma dovranno essere dichiarate come tali; 2.Listruzione che converte un valore stringa in un numero reale STRtoFLOAT es.: a:=STRtoFLOAT(EDIT1.TEXT); 3.Listruzione che converte un numero reale in stringa FLOATtoSTR es.: EDIT3.TEXT:=FLOATtoSTR(RIS)
Buon Lavoro!
Esercizio n. 2
Realizzare una calcolatrice completa con le quattro operazioni, controllando che le caselle dei valori numerici non siano vuote.
Esercizio n. 3
Un esercizio ulteriore pu essere quello di visualizzare in una sottofinestra un messaggio appropriato nel caso in cui il denominatore della divisione nullo. Suggerimenti A questo proposito utile sapere che la visualizzazione di questo tipo pu avvenire utilizzando listruzione ShowMessage(il valore di B uguale a 0. Divisione impossibile)
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
23
Lezioni di Delphi
InputBox
Disporre di uno strumento per le operazioni di input senza dubbio necessario. InputBox offre al programmatore la possibilit di visualizzare una finestra di cui si liberi di scegliere: lintestazione letichetta il valore da suggerire allutente
ed ecco la sintassi
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
24
Lezioni di Delphi
MessageDlg
Le finestre di output generate risultano assai pi complete rispetto a Showmessage poich sono arricchite da unintestazione specifica e da unicona tipiche di Windows a seconda del significato che si vuole dare alloutput.
ISTRUZIONE
MessageDlg('Buongiorno a tutti', mtwarning,[mbok],0);
OUTPUT PRODOTTO
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
25
Lezioni di Delphi
Application.MessageBox
Questo componente permette di effettuare unoperazione di output come MessageDlg ma senza lausilio di icone nella finestra visualizzata. Unopportunit che invece ci viene offerta quella di poter visualizzare pi tasti per scelte ovviamente diverse tra loro:
Volendo gestire levento SI, NO o Annulla possibile dichiarare una variabile di tipo intero a cui daremo il nome RISP ed associare ad essa il codice precedente:
risp:=application.MessageBox('Andiamo in pizzeria questa sera?',Buoncompleanno!',mb_yesnocancel);
In questo modo mediante una selezione multipla si pu sviluppare un programmino per le tre risposte possibili:
case risp of idYes:showmessage(Ci vediamo stasera alle otto ); idNo:showmessage(Sei proprio tirchio!); idCancel:showmessage(Allora che facciamo?); end;
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
26
Lezioni di Delphi
La procedura associata al pulsante che esegue la divisione tenter di convertire i valori delle caselle di testo: a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text); ris:=a+b; edit3.text:=floattostr(ris);
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
27
Lezioni di Delphi
A questo punto utile sapere che lerrore involontario o voluto pu essere gestito in modo tale che il nostro programma non vada in blocco.
var Form1: TForm1; A,B,RIS:REAL; implementation {$R *.dfm} procedure TForm1.BtDividiClick(Sender: TObject); begin TRY A:=STRTOFLOAT(EDIT1.TEXT); B:=STRTOFLOAT(EDIT2.TEXT); 1 RIS:=A/B; EDIT3.Text:=FLOATTOSTR(RIS); EXCEPT ON EZERODIVIDE DO MESSAGEDLG('Divisore nullo!', mterror,[mbok],0); ON ECONVERTERROR DO MESSAGEDLG('Assicurarsi di aver inserito correttamente i due valori!', mterror,[mbok],0) ELSE BEGIN // In tutti gli altri casi di errore MessageDlg('Prestare attenzione!', mterror,[mbok],0); EDIT1.TEXT:='';EDIT2.TEXT:=''; END; END; end;
Nel caso Delphi non riscontri errori di sorta, listruzione TRY esegue il pacchetto di istruzioni 1, altrimenti EXCEPT in base allerrore (Eccezione):
se EZeroDivide segnaler che il divisore della divisione zero; se EConvertError segnaler che la conversione non ha avuto successo poich il valore non valido; in tutti gli altri casi viene visualizzato un messaggio generico.
Occorre, inoltre sapere che, durante lesecuzione Delphi segnaler comunque lerrore associato alleccezione, mentre lesecuzione diretta del file con estensione .EXE non visualizzer gli errori segnalati dal compilatore.
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
28
Lezioni di Delphi
Elenco delle principali eccezioni ECCEZIONE EConvertError EDatabaseError DESCRIZIONE Fallimento di una conversione Errore di accesso ad un file o database EDivByZero Divisione per zero tra valori interi EIntOverflow EIntUnderflow Il valore intero troppo grande Il valore intero troppo piccolo EMathError Fallimento dellesecuzione di unoperazione matematica EOverflow EPrinterError Il valore reale troppo grande Malfunzionamento della stampante (spenta, senza carta, ecc.) ERangeError Indice di un vettore oltre lintervallo di valori ammessi EUnderFlow EZeroDivide Il valore reale troppo piccolo Divisione per zero tra valori reali
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
29
Lezioni di Delphi
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
30
Lezioni di Delphi
Ora possiamo elencare i campi del record logico che intendiamo organizzare
In corrispondenza di Type (tipo) specificare A (alfanumerico) e Size=20 poi premere INVIO e continuare fino ad ottenere:
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
31
Lezioni di Delphi
Salvare la tabella cos creata col nome Classe nella nuova cartella Gestione classe del disco fisso.
Lezioni di Delphi
dati che dovranno essere elaborati dallo stesso. Un esempio? Se lufficio anagrafe di un comune deve automatizzarsi nel momento in cui sar pronto il programma i dati saranno gi disponibili, non si dovr cio aspettare la fine dello sviluppo del programma per inserirli tutti. Bene, il nostro primo programma sulle tabelle si occuper di acquisire i dati relativi agli alunni di una classe e di consentire operazioni di variazione e cancellazione degli stessi oltre a visualizzare la lista completa degli alunni. Come prima cosa avviamo Delphi e salviamo unit e project nella cartella Gestione classe allinterno della quale gi presente la tabella Classe. Poi dalla pagina BDE* della barra degli strumenti preleviamo il componente Table.
Table un componente non visuale in quanto, durante lesecuzione del programma, il form non mostra alcun oggetto grafico ad esso associato, insomma un componente non visuale non viene percepito dallutente come accade per le caselle di testo, le etichette o i pulsanti.
*
BDE sta per Borland Database Engine (motore di gestione dei database di Borland)
Riproduciamo la situazione :
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
33
Lezioni di Delphi
prima di procedere salviamo unit e progetto nella cartella Gestione classe dove si trova gi la tabella Classe. Il componente Table deve essere collegato a Classe, per cui nellObject inspector impostiamo le relative propriet come segue: PROPRIETA DATABASENAME NAME TABLENAME TABLETYPE VALORE C:\GESTIONE CLASSE T CLASSE.DB TTPARADOX
Databasename una propriet che indica il percorso di ricerca del file a cui Delphi deve fare riferimento durante lesecuzione. Name permette di modificare il nome di lavoro della tabella (quello dato al componente Table che di solito Table1), in questo caso per velocizzare la scrittura scegliamo il nome T che sar impiegato da tutte le istruzioni che scriveremo. Tablename deve essere associato ad una tabella appartenente allindirizzo precedente. Tabletype specifica la natura della tabella consentendo a BDE la scelta fra svariati strumenti nel caso il nostro programma debba utilizzare dati generati in precedenza.
Vediamo ora quali sono i principali comandi per lavorare con la tabella:
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia 18/02/07 34
Lezioni di Delphi
OPEN
APRE LA TABELLA. QUESTA E UNOPERAZIONE OBBLIGATORIA PER EFFETTUARE ATTIVITA DI INSERIMENTO, MODIFICA, VISUALIZZAZIONE, RICERCA O CANCELLAZIONE DI RECORD
CLOSE EDIT
CHIUDE LA TABELLA E FA COPPIA FISSA CON CLOSE PREDISPONE LA TABELLA ALLA CANCELLAZIONE, MODIFICA, RICERCA, VISUALIZZAZIONE DEI RECORD
PREDISPONE LA TABELLA ALLINSERIMENTO DI RECORD CONVALIDA LINSERIMENTO DI RECORD PREDISPONE LA TABELLA ALLA CANCELLAZIONE DI RECORD CONVALIDA LA CANCELLAZIONE DI RECORD PUNTA AL PRIMO RECORD DELLA TABELLA PUNTA ALLULTIMO RECORD DELLA TABELLA NEL CASO DI RICERCA EFFETTUA IL POSIZIONAMENTO AL RECORD SUCCESSIVO
EOF EMPTYTABLE
INDICA SE IL FILE E FINITO CANCELLA LINTERO CONTENUTO DELLA TABELLA MA NON LA SUA STRUTTURA
cognome, nome, data di nascita e residenza degli alunni della nostra classe 4cp occorrer scrivere allinterno della procedura di inserimento il seguente pacchetto di istruzioni:
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
35
Lezioni di Delphi
Abbiamo visto che per scegliere di lavorare su di uno specifico campo di un record occorre scrivere: t.fields[0].asstring dove fields[0] sta ad indicare che il campo focalizzato il primo (si parte sempre da zero) mentre la propriet asstring specifica che il valore del campo viene momentaneamente impostato come stringa evitando cos al programmatore la conversione del valore secondo la struttura stabilita. Le altre propriet di fields sono visualizzate nel riquadro che segue:
AsBCD: per valori con quattro cifre decimali AsBoolean: per valori True o False AsCurrency: per valori monetari AsDateTime: per valori data e ora AsSQLTimeStamp: per valori da estrarre e convertire conformi a AsDateTime AsFloat: per valori numerici reali AsInteger: per valori numerici interi AsVariant: per valori il cui tipo modificabile alloccorrenza
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
36
Lezioni di Delphi
Dopo aver realizzato la procedura di inserimento dei dati relativi agli alunni della classe anche opportuno permetterne la visualizzazione. A questo proposito possiamo organizzare la stampa a video utilizzando una griglia del tipo foglio dati utilizzando il componente StringGrid della pagina Additional della Barra degli strumenti:
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
37
Lezioni di Delphi
Una volta piazzato il componente sul form possibile ridimensionarlo a piacimento e modificarne la larghezza delle colonne come facciamo in Excel. Poi, per predisporre al meglio la nostra griglia, tramite lObject inspector imposteremo alcune delle sue propriet in modo da ottenere la situazione della figura successiva:
PROPRIETA COLCOUNT numero di colonne FIXEDCOLS colonne fisse FIXEDROWS righe fisse NAME nome ROWCOUNT numero di righe SCROLLBARS barre di scorrimento ssVERTICAL (solo verticale) 30 SG 1 0 4
VALORE
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
38
Lezioni di Delphi
Terminata la costruzione del componente StringGrid si pu passare alla scrittura della procedura di visualizzazione associandola come di consueto ad un bottone della pagina Standard. Ecco il codice da includere nella procedura :
var i:integer; begin t.Open;t.First; i:=0; while not t.Eof do begin with sg do begin i:=i+1; cells[0,i]:=t.Fields[0].AsString; cells[1,i]:=t.Fields[1].AsString; cells[2,i]:=t.Fields[2].AsString; cells[3,i]:=t.Fields[3].AsString; end; t.next; end; t.close; // chiudiamo il file // va al record successivo Assegnazione dei campi del record a ciascuna cella della griglia // strumento per lavorare con le celle della griglia // ciclo per la lettura dal file dei record // apriamo il file portandoci sul primo record // variabile da utilizzare per posizionarsi su ciascuna riga della griglia
I TC Alighieri Cerignola (FG) - Corso programmatori - proff. Cariello Pasquale e Tartaglia Luigia
18/02/07
39