Delphi - Home Page del Laboratorio di Informatica dell`Armellini
Transcript
Delphi - Home Page del Laboratorio di Informatica dell`Armellini
Appunti di Borland Delphi 7 1/29 Delphi Ambiente integrato di programmazione grafica Oltre la normale barra del menù distinguiamo 4 aree: • • • • Barra Veloce Palette dei componenti L’object Inspector La form -1- Appunti di Borland Delphi 7 Una avvertenza iniziale: il salvataggio va fatto subito e in una cartella ad hoc per l’applicazione da svolgere. Cioè: sono in 5G, creo la cartella “calcolatrice”, salvo dal menu File di Delphi con “Salva tutto” Mi chiederà un nome da dare al “progetto” ed uno da dare alla “Unit”. E’ consigliabile inizialmente confermare le proposte che ci fa di “project1.dpr” e “unit1.pas” Ma attenzione, il sistema ci propone di salvarlo in “documenti”, che nei nostri computer è protetta, va tutto salvato invece nella cartella da noi predisposta. Ora l’applicazione è già in grado di funzione, attraverso l’icona creando l’eseguibile “project1.exe” “compila ed esegue” Noi abbiamo salvato 2 file, ma i file creati saranno 8. Attenzione, se non applicate rigorosamente questa procedura iniziale vi è un alto rischio di perdere tutto il lavoro che svolgerete o avrete svolto. -2- Appunti di Borland Delphi 7 Cosa c’è nella Unit Cosa c’è nel Project -3- Appunti di Borland Delphi 7 Componente Button Si trova nella palette Standard Proprietà: Caption Name esempio Button1.caption:=’clicca’; esempio Button1.name:=’Click1’; non è possibile cambiare il colore dell’oggetto Button (usare componente BitBtn) Eventi: esempio: procedure TForm1.Button1Click(Sender: TObject); begin showmessage (‘questo è il mio primo click!’); end; Componente Label Si trova nella palette Standard Proprietà: Caption Name Autosize Color Size Font.Color label Font.Style Visibile esempio Label1.caption:=’Buongiorno’; Label1.name:=’Etichetta_Buongiorno’; a ‘false’ quando deve rispettare quella disegnata da noi sulla form Label1.color:=clred; imposta rosso lo sfondo della label Label1.Font.Size:=15; Label1.Font.Color:=clblue; imposta blu il colore del carattere della Label1.Font.Style:=[fsBold]; Label1.Font.Style:=[fsBold,fsItalic]; Label1.Font.Style:=[]; Label1.Visible:=false; Eventi: è raro cliccare su una label ma è possibile, cosi come è possibile dare il doppio clic e tutti gli eventi indicati in figura procedure TForm1.Label1DblClick(Sender: TObject); begin Label1.font.size:= Label1.font.size+10; end; -4- Appunti di Borland Delphi 7 Metodi di conversione dei valori Se in una label devo inserire un valore numerico, ho bisogno di convertire in stringa un intero Ad esempio, devo inserire nella label il valore della grandezza del carattere di un bottone: Label1.Caption:=inttostr(Button1.Font.Size); il passaggio opposto invece: Button1.Font.Size:=strtoint(Label1.Caption); Per convertire invece la data odierna in una label: Label1.Caption:=datetostr(date); E l’ora attuale del computer Label1.Caption:=timetostr(time); Ma anche una variabile dichiarata real può essere direttamente trasformata in stringa Label1.Caption:=floattostr(x); -5- Appunti di Borland Delphi 7 Componente RadioGroup Si trova nella palette Standard Proprietà Caption già visto Name già visto Items E’ l’elenco delle scelte presenti nella radiogroup. In genere si riempie in fase di Progettazione. Altrimenti in fase di programma è possibile con radiogroup1.Items.Add(<stringa>); ItemIndex se vale -1 nessuna scelta è stata impostata 0 è la prima scelta della Radiogroup; 1 la seconda, e cosi via Alcuni Metodi s:=radiogroup1.items[i]; nella stringa s assegno l’elemento i della radiogroup; s:=radiogroup1.items[radiogroup1.itemindex] ; nella stringa s assegno l’elemento selezionato della radiogroup Esempio di Evento: procedure TForm1.RadioGroup1Click(Sender: TObject); begin case radiogroup1.itemindex of 0:label1.Font.style:=[]; 1:label1.Font.style:=[fsbold]; 2:label1.Font.style:=[fsitalic]; end; end; -6- Appunti di Borland Delphi 7 Componente Combobox Si trova nella palette Standard Il componente combobox ripete esattamente tutte le proprietà precedenti del componente Radiogroup cosi come i metodi attraverso cui individuo le scelte selezionate Esempio di Evento: procedure TForm1.ComboBox1Change(Sender: TObject); begin case combobox1.itemindex of 0:label1.Font.style:=[]; 1:label1.Font.style:=[fsbold]; 2:label1.Font.style:=[fsitalic]; end; end; Il componente Edit Il componente può essere utilizzato per l'ingresso di dati dall'esterno, come una finestra di input. Il suo contenuto può essere raccolto attraverso la proprietà Text che è una stringa e utilizzata attraverso un evento buttonclick Ma esiste anche la possibilità di prendere il valore attraverso un invio da tastiera, attivando l'evento KeyDown e il parametro Key Esempio di evento: procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var s:string; begin if key=VK_return then s:=edit1.text; ….. -7- Appunti di Borland Delphi 7 Componente SpinEdit Si trova nella palette Sample Proprietà MinValue imposto il limite inferiore del componente MaxValue imposto il limite inferiore del componente Increment al clic si incrementa o decrementa di un valore standard Value è il valore attuale indicato dall’edit Eventi procedure TForm1.SpinEdit1Change(Sender: TObject); begin end; -8- Appunti di Borland Delphi 7 Anche la Form è un oggetto con attributi ed eventi Cliccando in un punto qualsiasi della form, nell’object inspector compaiono alcuni attributi da segnalare: Attributi Top Left Width Height Color Caption Border Style Form Style Icon WindowState la distanza della form dai limiti verticali dello schermo la distanza della form dal bordo sinistro dello schermo la larghezza della form l’altezza della Form il colore della Form La scritta che compare nell’intestazione della finestra La gestione dei bordi della finestra (pulsanti compresi) Che tipo di finestra abbiamo rispetto alla struttura gerarchica l’icona associata alla finestra nella barra di intestazione Finestra normale, allargata a tutto schermo, ridotta ad icona Eventi procedure TForm1.FormActivate(Sender: TObject); begin end; procedure TForm1.FormCreate(Sender: TObject); begin end; Form Create e Form Activate gestiscono quelle operazioni necessarie al momento dell’avvio dell’applicazione: La Create avviene una sola volta, l’activate avviene ogni qualvolta la finestra ritorna in primo piano. Per creare una nuova finestra ( La Form2), si va sul Menù File e si clicca su New>Form. Nasce una form2 e una unit2 che vanno salvate. Da programma per attivare la form2 va creato un evento in cui inserire: Form2.show; Ora la unit1 sarà cosi modificata: var Form1: TForm1; implementation uses Unit2; -9- Appunti di Borland Delphi 7 Il componente ColorGrid Nella palette Sample troviamo il componente ColorGrid Attributi ForegroundColor BackgroundColor Colore di sfondo Colore di primo piano Eventi procedure TForm1.ColorGrid1Change(Sender: TObject); begin label1.Color:=colorgrid1.BackgroundColor; label1.Font.color:= colorgrid1.ForegroundColor; end; -10- Appunti di Borland Delphi 7 Il componente Main Menu Si trova nella palette Standard E’ un componente non visibile. Bisogna cliccarci sopra e si apre una finestra da riempire con la barra del menù e le voci riferite a ciascuna tendina del menù. A fianco la figura descrive un barra del menù in costruzione. Con un doppio clic su ciascuna voce si attiva la procedura corrispondente cosi come si fa per un qualsiasi bottone Il componente Image Si trova nella palette Additional. Si può impostare l’immagine in fase di progettazione seguendo l’attributo il percorso indicato dal clic … sull’attributo Picture Si deve scegliere su disco un file .bmp, meglio ancora un file .jpg Con questa operazione l’immagine viene incorporata nel file .exe dell’eseguibile del programma Esistono altri modi per caricare l’immagine durante l’esecuzione: Image1.picture.loadfromfile(‘Figura.jpg’); Meglio ancora se preceduta da: if fileexists(‘Figura.jpg’) then Image1.picture.loadfromfile(‘Figura.jpg’); in modo da evitare errori che provano un crash del programma. Il file viene cercato nella directory corrente. Quando un’immagine non corrispondente alle dimensioni della cornice dell’image utilizzare la proprietà Stretch ponendola a true -11- Appunti di Borland Delphi 7 Il componente ListBox Il componente Listbox si trova nella palette standard Aggiungere un elemento nella lista : listbox1.items.add (<stringa>) Cancellare un elemento dalla lista : listbox1.items.delete(<integer>); Estrarre da una posizione della lista: <stringa>:=listbox1.items[<integer>]; La lunghezza della lista: <integer>:=listbox1.items.count; Cancellare un’intera lista: listbox1.clear; Caricare nella lista un file di testo listbox1.Items.loadfromfile('kkk.txt'); Salvare la lista in un file di testo listbox1.Items.savetofile('kkk.txt'); Estrarre una stringa dalla posizione corrente (selezionata) della lista: <string>:=listbox1.items[listbox1.itemindex]; La posizione dell’elemento selezionato della ListBox <integer>:=listbox1.itemindex; -12- Appunti di Borland Delphi 7 Tre possibilità per fare la barra delle icone • • • Toolbar e Toolbutton Panel e BitBtn Panel e SpeedButton Componente Panel e BitBtn Il componente Panel è sulla palette standard Il componente BitBtn si trova nella palette additional Il componente SpeedButton si trova nella palette additional Tra i componenti BitBtn e SpeedButton non vi sono significative differenze, entrambi i bottoni possono contenere testo ed immagini, e colorare il testo del bottone Il componente Panel si colloca sotto il menù attraverso la proprietà Proprietà Panel: Align: impostarla ad alTop Tenendo selezionato il panel selezionare il componente BitBtn nella palette additional e cliccare dentro il panel, sistemando la dimensione del bottone Proprietà BitBtn: Caption: un eventuale nome del bottone Glyph: una eventuale immagine del bottone Si possono avere sia una scritta, sia un’immagine sul bottone. L’immagine deve essere un .bmp Posso anche passare un'immagine da un bottone ad un altro: BitBtn1.Glyph:=BitBtn9.Glyph; Per trovare file formato icona visitare http://icone.goldenweb.it Oppure : www.clker.com Oppure: www.iconarchive.com -13- Appunti di Borland Delphi 7 I Componenti ToolBar e Toolbutton Inserire una ToolBar nella Form prelevandola dalla Palette Win32 La Toolbar automaticamente si dispone nella parte alta della Form Nella Toolbar è possibile inserire dei bottoni di comando a cui associare una procedure e una icona Si clicca con il destro sulla Toolbar scegliendo New Button e, se serve, New Separator. Ogni bottone è un oggetto di tipo toolbutton e si distingue dall'altro oltre che dal Name, da una proprietà ImageIndex che parte da 0 per il primo bottone ed è progressiva. ImageList Se vogliamo ora inserire delle Icone nei bottoni, utilizziamo il componente non visibile ImageList della Palette Win32. Selezionamo ImageList nella Form e facciamo clic di destra scegliendo ImageListEditor e quindi Add Vi sono delle immagini di file BMP o ICO già predisposte nella sottodirectory (in genere) …\programmi\borland\delphi\images\buttons. Inserirne un numero pari al numero dei bottoni inseriti nella ToolBar Ora selezionare la Toolbar e nella proprietà Images associare il componente ImageList1. Se tutto è stato fatto correttamente i bottoni assumeranno un'immagine. Hint e ShowInt Per evidenziare una scritta di suggerimento su un bottone, o un qualsiasi altro oggetto, bisogna impostare la proprietà ShowHint dell'oggetto a true ed impostare l'etichetta della scritta che deve comparire nella proprietà Hint La forma del Cursore La forma del cursore è definita dalla proprietà Cursor, normalmente impostata a crDefault. In corrispondenza di un bottone o di un qualsiasi oggetto legato ad un evento si può impostare a crHandPoint -14- Appunti di Borland Delphi 7 I componenti Opendialog e Savedialog Per richiamare un file in una memo o in una listbox Memo1.lines.loadfromfile(‘c:\winword\prova.txt’); Oppure Listbox1.items.loadfromfile(‘c:\winword\prova.txt’); Per richiamare un file attraverso una finestra di dialogo occorre inserire nella form il componente non visuale Opendialog che si trova nella palette Dialogs quindi: if Opendialog1.execute then memo1.lines.loadfromfile(opendialog1.filename); viceversa per salvare: if Savedialog1.execute then memo1.lines.savetofile(savedialog1.filename); Per impostare FileNome e TipoFile nella finestra che si apre: Opendialog1.filter:=’file di testo (TXT) | *.txt’; Per impostare una directory predefinita nella finestra che si apre: Opendialog1.initialdir:=’c:\winword’ -15- Appunti di Borland Delphi 7 Messaggi di Dialogo Messaggio su cui si può solo confermare: • SHOWMESSAGE(‘Non hai inserito il tuo nome…’); Messaggio con più risposte: • MESSAGEDLG(‘Vuoi uscire?’,mtconfirmation,[mbNo,mbYes,mbCancel],0) Al posto di mtconfirmation si puo’ utilizzare: Mterror Mtinformation Mtwarning Mtcustom Oltre a mbYes,mbNo,MbCancel si può usare: MbOk MbHelp MbAbort MbRetry MbIgnore MbAll La risposta è un Word tipo: MrYes MrNo MrCancel ………… Il risultato si testa con: If messagedlg(…………)=mrYes then ……….else ………. Oppure X:=messagedlg(……….); If x=mrYes then …….else if x=mrNo then ……..else ……. Un tipico messaggio di dialogo, questo è un mtWarning -16- Appunti di Borland Delphi 7 Orologio ed Animazioni il Time e il componente Timer Catturare l’ora del computer <string>:=timetostr(time) Calcolare un tempo trascorso <string>:=timetostr(strtotime(t2)-strtotime(t1)) t1 e t2 sono stringhe Catturare la Data del Computer <string>:=datetostr(date) Il componente Timer Il time è una funzione che ci fornisce l’ora di questo istante: se voglio vederla la devo convertire nel tipo stringa Il Timer è un componente, serve ad animare altri componenti dell’animazione. Per esempio l’ora del computer: Infatti l’ora del computer legata ad un clic del computer mi fa vedere l’ora in quell’istante, non mi fa vedere l’ora che si aggiorna in ogni istante Il componente Timer serve a questo. Si seleziona dalla palette System, si sceglie e si pone nella Form, è un componente non visuale. Se si clicca due volte sul componente Timer si predispone la procedura Tform1.Timer1Timer. procedure TForm1.Timer1Timer(Sender: TObject); begin ………. end; Qui si scrivono le righe di programma relative all'oggetto per esempio da muovere. Esso può essere la funzione time, ma anche un’immagine, una label, un bottone. La procedura viene eseguita continuamente come se fosse un ciclo. A quale velocità si muove la foto o l'oggetto in questione? Lo decido impostando la proprietà Interval del componente Timer, per default è 1000, ma possiamo ridefinirlo e modificarlo anche da programma. Se sarà 0 l'immagine sarà ferma. Se sara 1 velocissima Se sarà 5000 lentissima -17- Appunti di Borland Delphi 7 Il Componente Mediaplayer Per rendere operativo il componente MediaPlayer è necessario in primo luogo assegnare un valore all’attributo Filename Es: Mediaplayer1.filename:=’Video.avi’; I Metodi Play e Pause possono essere utilizzati attraverso propri bottoni oppure attivando il mediaplayer. Il Mediaplayer si attiva a sua volta solo se il filename è assegnato e se il mediaplayer è aperto: Mediaplayer.open; Il video si attiva nella parte alta del video Se vogliamo invece inquadrarlo dentro un componente, va invece attivata la proprietà Display Ad esempio nella procedura: procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean); begin MediaPlayer1.display:=panel1; end; Per centrare perfettamente l’immagine nel panel va usato il metodo Displayrec mediaplayer1.Displayrect:=rect(5,5,100,100); I valori vanno in realtà generalizzati rispetto alle dimensioni del componente che conterrà il video (es: Panel) La lunghezza del file che si sta utilizzando è data da: mediaplayer1.TrackLength[0]); Ci è utile quando lavoriamo il componente Trackbar che serve a dare lo scorrimento del video Infatti la trackbar ha un attributo trackbar1.Max:=mediaplayer1.TrackLength[0]; e un attributo position legato allo scorrimento del video trackbar1.Position:=mediaplayer1.position; Ma per il funzionamento della Trackbar ci sarà bisogno di un componente Timer -18- Appunti di Borland Delphi 7 Mediaplayer e gestione di file e directory Per inserire i componenti presenti nella finestra: Dalla palette System Componente Mediaplayer Metodi Open, Play, Pause Proprietà Display Dalla palette Win 3.1 Componente DirectoryListBox Proprietà FileList (si inserisce collegamento alla filelistbox) Componente FileListBox Proprietà Componente FilterCombobox Proprietà FileList (si inserisce collegamento alla filelistbox) Proprietà Filter ( si inserisce il tipo di file da vedere) Componente DriveComboBox Proprietà DirList (si inserisce collegamento alla directoryListBox) Dalla palette Win32 Componente Trackbar Proprietà Min - Max – Position Stabilire una connessione tra Trackbar.position e Mediaplayer.position recuperando in particolare la lunghezza dal file multimediale (mediaplayer.tracklength[0]) Problematiche connesse Mediaplayer e panel stabilire il collegamento Mediaplayer e displayrect Label ed extractfilename(mediaplayer1.filename); -19- Appunti di Borland Delphi 7 Mediaplayer: trackbar e visualizzazione del tempo Come trasformare I tempi del file audio/video in minuti e secondi Per trasformare il mediaplayer1.position va diviso x 1000 e x 60 Minuti= mediaplayer1.position div 1000 div 60 I secondi sono il resto di questa divisione ma anch’essi vanno divisi x 1000 Secondi= (mediaplayer1.position -(Minuti*1000*60)) div 1000 Per visualizzare il tutto va fatta la conversione in stringa Per mediaplayer.tracklength[0]) va fatta la stessa operazione Come muovere la trackbar in modo sincronizzato con il video Nel timer quando la position si modifica va neutralizzato l’evento trackbarChange Per poi essere immediatamente reinserito. trackbar1.OnChange:=nil; trackbar1.Position:=mediaplayer1.position; trackbar1.OnChange:=trackbar1change; Nella procedura TForm1.TrackBar1Change(Sender: TObject); Quando muovo la trackbar il mediaplayer va fermato Mediaplayer1.Stop; Il mediaplayer sincronizzato alla trackbar Mediaplayer1.position:=trackbar1.Position; Il mediaplayer rimesso in esecuzione mediaplayer1.Play; -20- Appunti di Borland Delphi 7 Catturare il clic di un oggetto Vogliamo cliccare su un componente (es. una label) in un insieme di componenti ed individuare all’interno di una sola procedura che vale per tutti i componenti, quale è stato quello effettivamente cliccato. Non vogliamo quindi né fare tanti eventi per ciascun componente, né farne uno solo con magari all’interno una “case” che individua l’oggetto cliccato. Primo esercizio: Abbiamo 4 label (ma potrebbero essere 20…): li distinguiamo dando alla proprietà tag un valore diverso da 1 a 4 nella fase di progettazione. Cliccando su una label inseriamo in un edit il valore della sua tag utilizzando un evento che vale per tutte le label. Come prendere il tag del componente cliccato se la procedura è uguale per tutti? Edit1.text:=inttostr((Sender as tlabel).tag); Il Sender individua l’oggetto di tipo label nel suo complesso (è un parametro passato nella procedura) e il tag distingue tra le diverse label procedure TForm1.Label1Click(Sender: TObject); begin edit1.text:=inttostr((sender as tlabel).tag) ; end; -21- Appunti di Borland Delphi 7 Esercizio 2 Cliccare su una label e fargli cambiare colore, come se il clic la evidenziasse. Cliccare su un’altra label che a sua volta si evidenzia ma facendo tornare al colore normale quella precedentemente evidenziata E’ necessario creare un array di Tlabel etic:array[1..4]of tlabel; E al momento dell’avvio dell’applicazione associare l’array alle label procedure TForm1.FormCreate(Sender: TObject); begin etic[1]:=label1; etic[2]:=label2; etic[3]:=label3; etic[4]:=label4; end; L’associazione può ancora meglio essere realizzata con un ciclo che utilizza FindComponent: for i:=1 to 4 do etic[i]:= tlabel(FindComponent('label'+inttostr(i))); -22- Appunti di Borland Delphi 7 Uso di (Sender as label).tag e di un array di label 1. Creo 4 label ( ma posso considerare come fossero 50) 2. Come posso distinguerle una dall’altra: taggandole da 1 a 4 Cioè attributo label1.tag:=1; ….;label4.tag:=4; 3. Clicco sulla label, in una nuova label (label5 ad esempio) deve visualizzarsi la tag della label cliccata; l’evento label1Click avrà quindi all’interno label5.caption:=inttostr(label1.tag); 4. L’evento label1Click sarà l’evento associato a tutte e 4 le OnClick delle label . Ma il risultato sarà comunque 1 sulla label5.caption 5. Devo generalizzare la label che clicco e non farla essere la label1, come? sostituendo label5.caption:=inttostr(label1.tag) con label5.caption:=inttostr((sender as tlabel).tag) ; 6. Ora ho bisogno di considerare il tag come l’indice di un array di label Definisco l’array di label con nome etic di tipo label etic:array[1..4]of tlabel; Associo ogni label ad un elemento dell’array etic[1]:=label1; etic[2]:=label2; etic[3]:=label3; etic[4]:=label4; Correggo il mio onclick x:=(sender as tlabel).tag; etic[x].color:=clred; 7. Ora però i colori devono cambiare al momento del click, lasciando selezionato solo il cliccato Utilizzo una nuova variabile k che contiene il valore precedente di x (cioè ricorda la penultima label cliccata, la rimette azzurra, mentre rossa diventa l’ultima cliccata (k:=x; prima di x:=(sender as tlabel).tag;) Attenzione: x e k sono globali e x va inizializzato a 1 (nel formCreate) 8. Posso generalizzare l’associazione etic[..]:=label.. ? Si utilizzando un nuovo metodo: for i:=1 to n do etic[i]:= tlabel ( FindComponent ( ‘label’ + inttostr (i))); -23- Appunti di Borland Delphi 7 Utilizzo della Paint Box Dalla palette System selezionare il componente Paint Box La paintBox è assolutamente trasparente. Quindi il colore lo darà la Form. (cambiare quindi il colore della Form) Sistemare un Panel nel Top della Form e dare alla PaintBox la proprietà Align =AlClient Impostare i colori • ¶ PaintBox1.Canvas.Pen.Color:=clred; • ¶ PaintBox1.Canvas.brush.Color:=clblue; • Tracciare una riga • ¶ paintbox1.Canvas.MoveTo(i,j); • ¶ paintbox1.Canvas.LineTo(form1.paintbox1.width,j); • Realizzare un cerchio (o punto, o ellisse) • ¶ • Utilizzare gli eventi che catturano le coordinate del mouse • ¶ • (Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer); paintbox1.Canvas.ellipse(x,y,x+10,y+10); procedure TForm1.PaintBox1MouseDown Cancellare tutto sulla PaintBox ¶ PaintBox1.repaint; -24- Appunti di Borland Delphi 7 Gestione di una tabella con Delphi Utilizzo dei componenti Table DataSource Dbedit Metodi: Table1.first Table1.last Table1.prior Table1.next Esistono inoltre (per gestire da programma le funzioni del dbNavigator) Table1.insert (per inserire un nuovo record) Table1.delete (per cancellare un record) Table1.Moveby() Table1.Fieldcount Table1.RecordCount Table1.RecNo Table1.bof Table1.eof Servono per gestire la testa e la coda del file di database come classicamente avviene per la gestione di un qualsiasi file -25- Appunti di Borland Delphi 7 La corretta impostazione dei componenti indispensabili per gestire una tabella Componente Table Active=true DataBase=<un alias disponibile o una directory> TableName=<scegliere nell’elenco> Componente Data Source DataSet=Table1 Componente DBNavigator DataSource=DataSource1 ShowInt=true Componente DBGrid DataSource=DataSource1 Componente DBEdit DataSource=DataSource1 DataField=<scegliere il campo desiderato nell’elenco> Altre Proprietà del componente Table Filter=(esempio) Nome=’PAOLO’ Filtered=true Indexfieldnames=<scegliere il campo desiderato nell’elenco> Altri Metodi Table1.FieldCount Table1..RecordCount Table1.RecNo -26- Appunti di Borland Delphi 7 Utilizzo dei componenti DBNavigator e DBGrid Creare una applicazione di data base facendo riferimento ad una tabella di dati presente sul disco a vostro piacere inserendo i seguenti componenti: • • • • Table DataSource DBNavigator Dbgrid Utilizzare un componente Combobox in cui automaticamente al momento dell’avvio dell’applicazione si inseriscano tutti i campi del database Deve essere sempre aggiornato il contatore dei record della tabella e l’indice del record corrente Deve essere possibile “filtrare” e vedere nella tabella dei dati i soli record che corrispondono al valore riferito al campo della combobox selezionato Per utilizzare i campi nel componente combobox possiamo far riferimento al nome dei campi utilizzando questa riga di programma: table1.fields[i].fieldname in cui i è il campo iesimo della tabella, il primo campo corrisponde alla posizione zero Per l’uso dei filtri si possono guardare le proprietà della componente Table, Filtered e filter -27- Appunti di Borland Delphi 7 Uso del Componente Query Impostazioni Data Source1: Data Set= Query1 Query1 : active=true (puo’ essere attivata solo dopo aver impostato la proprietà sql : databasename=<percorso> Dbgrid1 : Datasource=Datasource1 DbNavigator: Datasource=Datasource1 Button1 Agisce sul codice sql del componente query. con query1.close si chiude una query con query1.open si lancia una query con query.sql.clear si cancella il testo della query con query.sql.add si imposta una query Button2 Con l’altro bottone invece si agisce su un componente Memo, qui si scrive la query in linguaggio sql, cliccando il bottone la query va in esecuzione -28- Appunti di Borland Delphi 7 Utilizzo di una Memo Caricamento di un file di testo in una Memo Memo1.lines.loadfromfile(<nomefile>) Aggiunta di una riga ad una memo Memo1.lines.add(<stringa>) Cancellare il contenuto di una memo Memo1.clear; Selezionare tutto il testo di una memo Memo1.selecAll Rendere visibile/invisibile una memo Memo1.visible:=<boolean> Inserire una barra di scorrimento verticale nella Memo Dalle proprietà oppure Memo1.scrollbars:=ssvertical Per calcolare il numero di righe di una Memo <integer>:=memo1.lines.count Per modificare il testo in una memo i riferimenti sono a: Memo1.font.name Memo1.font.color Memo1.font.size Memo1.font.style Oppure utilizzare dalla Dialogs il componente Fontdialog Per prelevare una linea da una Memo <stringa>:=Memo1.lines[<integer>] Per tagliare e copiare un testo selezionato Memo1.cuttoclipboard Memo1.copytoclipboard Per incollare in una memo Memo1.pastefromclipboard Spostare il Focus sulla Memo Memo1.setfocus Individuare la posizione del cursore nella Memo <integer>:=Memo1.selstart La lunghezza del testo selezionato <integer>:=Memo1.sellength -29-