Home

A scuola di Delphi

www.gpeano.org 

Introduzione · Capitolo 1 · Capitolo 2 · Capitolo 3 · Capitolo 4 · Capitolo 5 · Download 

Sommario
Euroconvertitore
Area rettangolo
Propagaz. errori
Cubo binomio
Equazione lineare
Calcolatrice
Numeri dispari
Esadecimale
Sommat. Produtt.
Divisori
Somma divisori
Fattori
 

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