Capitolo 1
Area di un rettangolo
Questo
programma serve praticamente da semplice esercizio per mettere in pratica
quanto appreso fin'ora: i concetti nuovi che saranno introdotti sono infatti
molto pochi.
L'applicazione ha come unico scopo quello di prendere le due misure della
base e dell'altezza di un rettangolo e calcolarne l'area quando viene
premuto il tasto Calcola.
Lanciamo l'ambiente di sviluppo di Delphi e salviamo subito tutto il project
e la unit associata alla form tramite il tasto veloce
Save all in una nuova cartella che chiameremo AreaRettangolo
all'interno della nostra cartella Documenti/Delphi, dando alla unit
il nome UnitAreaRettangolo e al project AreaRettangolo.
Assegnamo alla form il Name: FormAreaRettangolo e come Caption: Area
rettangolo. Inseriamo sulla form una Label, alla quale assegneremo il
Name: LabelBase e la Caption: Base. Continuiamo con una Edit,
alla quale assegneremo il Name: EditBase e il Text vuoto. Continuiamo
con la coppia Label-Edit per l'altezza, assegnando le proprietà analoghe.
La prima novità viene ora: inseriamo un BitBtn al posto
dell'usuale Button, che si trova sulla linguetta Additional ed è
rappresentato dall'icona . Il
BitBtn permette di visualizzare a fianco della Caption una piccola icona a
scelta del programmatore; alcune icone sono predefinite ed associate a
particolari azioni del tasto, es: OK, Annulla, Aiuto, Chiudi, etc. ma è
possibile inserire anche qualunque disegno. Assegnamogli quindi il Name BitBtnCalcola
e come tipo (Kind) selezioniamo bkOK: la Caption viene
cambiata di conseguenza in OK e vengono inoltre modificate altre
proprietà fra cui Default, che viene impostata a True.
Quest'ultima proprietà serve per far sì che il tasto BitBtn venga premuto
alla pressione del tasto di Invio, indipendentemente da dove si trovi il
cursore o il mouse; questo fatto permette di velocizzare l'utilizzo
dell'applicazione, poiché l'utente dopo aver inserito un dato può subito
premere il tasto Invio e vedere il risultato senza usare il mouse.
Modifichiamo ancora la Caption in Calcola.
Continuiamo con la coppia Label-Edit per l'area, assegnando proprietà
analoghe alle altre coppie Label-Edit ed abbiamo finito:
- object FormAreaRettangolo: TFormAreaRettangolo
Caption = 'Area rettangolo'
- object LabelBase: TLabel
Caption = 'Base'
- object EditBase: TEdit
Text = ''
- object LabelAltezza: TLabel
Caption = 'Altezza'
- object EditAltezza: TEdit
Text = ''
- object BitBtnCalcola: TBitBtn
Caption = 'Calcola'
Kind = bkOK
OnClick = BitBtnCalcolaClick
- object LabelArea: TLabel
Caption = 'Area'
- object EditArea: TEdit
Text = ''
Se le etichette delle Label e del tasto ci sembrano troppo piccole,
clicchiamo un volta con il mouse su una zona vuota della form per
evidenziarla, quindi dall'object inspector scegliamo la proprietà Font.
Se clicchiamo sul piccolo + alla sua sinistra facciamo apparire alcune
sotto-proprietà modificabili; oppure clicchiamo su ... (tre puntini) che si
trovano sulla destra della proprietà per far apparire la finestra di
dialogo delle impostazioni carattere e modifichiamo ciò che vogliamo, per
esempio scegliendo una dimensione di 10 anziché 8. Diamo OK, tutti gli
oggetti della form cambieranno i caratteri di conseguenza.
Clicchiamo due volte sul BitBtn Calcola per associare una
procedura attivata dall'evento click del mouse sul bottone; compare
l'intestazione della procedura:
procedure TFormAreaRettangolo.BitBtnCalcolaClick(Sender: TObject);
begin
end;
Scegliamo di utilizzare per le variabili numeri reali a doppia
precisioni: Double; le variabili necessarie sono: b per la
base, h per l'altezza e a per l'area. Dichiariamole subito
prima del blocco begin-end:
var
b, h, a: Double;
A questo punto scriviamo il codice Pascal per la procedura tra il begin
e l'end:
b:=StrToFloat(EditBase.Text);
h:=StrToFloat(EditAltezza.Text);
a:=b*h;
EditArea.Text:=FloatToStr(a);
La prima linea preleva la stringa di testo contenuta nella proprietà
Text di EditBase, la converte in un numero in virgola mobile (float) e lo
assegna alla variabile b; analogamente la seconda linea. Quindi viene
calcolata l'area moltiplicando b per h ed assegnando il risultato alla
variabile a. Infine il valore di a viene convertito in stringa ed assegnato
alla proprietà Text di EditArea.
Riportiamo per completezza l'elenco completo e tradotto prelevato dall'help
di
Delphi delle procedure di conversione da stringa a numero:
| Funzioni di conversione Stringa-Numero |
function StrToInt(const S: string): Integer;
StrToInt converte la stringa, che rappresenta un numero
intero in notazione decimale o esadecimale, in un valore intero. |
function StrToFloat(const S: string): Extended;
StrToFloat converte la stringa in un valore a virgola
mobile. La stringa deve contenere un segno opzionale (+ o -), una stringa
di cifre con un punto decimale opzionale, e un 'E' o 'e' opzionale
seguito da un intero con segno. Gli spazi all'inizio e alla fine nella stringa
vengono ignorati.
Nota: La variabile globale DecimalSeparator definisce il carattere
che deve essere usato come punto decimale. I separatori delle migliaia
e i simboli di valuta non sono permessi nella stringa. |
function StrToCurr(const S: string): Currency;
StrToCurr converte la stringa contenente un numero in
virgola mobile in un valore di tipo valuta (currency). |
e da numero a stringa:
| Funzioni di conversione Numero-Stringa |
function IntToStr(Value: Integer): string;
IntToStr converte un intero in una stringa contenente la
rappresentazione decimale di quel numero. |
function IntToHex(Value: Integer; Digits: Integer): string;
IntToHex converte un numero in una stringa contenente la
rappresentazione esadecimale (base 16) del numero. Value è il numero
da convertire. Digits indica il numero minimo di cifre esadecimali da
restituire. |
function FloatToStr(Value: Extended): string;
FloatToStr converte il valore in virgola mobile nella
sua rappresentazione stringa. La conversione usa il formato numerico generale
con 15 cifre significative. |
function CurrToStr(Value: Currency): string;
CurrToStr converte il valore valuta nella sua
rappresentazione stringa. |
Alla fine la procedura apparirà come:
procedure TFormAreaRettangolo.BitBtnCalcolaClick(Sender: TObject);
var
b, h, a: Double;
begin
b:=StrToFloat(EditBase.Text);
h:=StrToFloat(EditAltezza.Text);
a:=b*h;
EditArea.Text:=FloatToStr(a);
end;
Salviamo tutto e diamo il Run; se non ci sono errori collaudiamo
il programma. Proviamo a non utilizzare il mouse: inseriamo il valore 2 come
base, spostiamoci con il tasto Tab sull'altezza e inseriamo 3, quindi
premiamo Invio. Dovrebbe comparire il valore 6 nell'area. Usciamo dal
programma e chiudiamo Delphi.
1.02
- Area rettangolo
|