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

Calcolatrice

Vogliamo costruire una calcolatrice che esegua le 4 operazioni aritmetiche e che controlli la legittimità dell'operazione: ad es. se si tenta di fare n/0 o 0/0 visualizza impossibile o indeterminato.

Come si può vedere dalla figura a lato è necessario inserire sulla form 2 campi Edit per gli operandi e 1 per il risultato. Vi sono poi 4 tasti per le 4 operazioni, una Label per il simbolo di = ed infine un nuovo oggetto: Bevel.
L'oggetto Bevel, che si trova nella linguetta Addizional di Delphi , serve a disegnare un rettangolo o una linea incassata o in rilievo: la sua forma è definita dalle due proprietà Shape (bsBox, nel nostro caso) e Style (bsLowered, nel nostro caso). Noi vogliamo tracciare la linea che sta sopra il risultato: inseriamo l'oggetto Bevel trascinandolo con il mouse fino a raggiungere la larghezza voluta, quindi impostiamo manualmente la proprietà Height a 2 pixel. In alternativa si può anche impostare la proprietà Shape a bsTopLine, senza impostare l'altezza a 2.

Infine, dopo aver selezionato la Form, scegliamo una dimensione globale dei caratteri in modo da migliorarne la leggibilità: 12 punti o più. Il simbolo di moltiplicazione (×) è il carattere ANSI che si ottiene con la sequenza ALT+0215.

Elenchiamo, come al solito i nomi da assegnare agli oggetti:

  • object FormCalcolatrice: TFormCalcolatrice
      Caption = 'Calcolatrice'
  • object EditOp1: TEdit
      Text = ''
  • object EditOp2: TEdit
      Text = ''
  • object ButtonAddizione: TButton
      Caption = '+'
      OnClick = ButtonAddizioneClick
  • object ButtonSottrazione: TButton
      Caption = '-'
      OnClick = ButtonSottrazioneClick
  • object ButtonMoltiplicazione: TButton
      Caption = '×'
      OnClick = ButtonMoltiplicazioneClick
  • object ButtonDivisione: TButton
      Caption = '/'
      OnClick = ButtonDivisioneClick
  • object BevelLinea: TBevel
      Height = 2
  • object LabelUguale: TLabel
      Caption = '='
  • object EditRisultato: TEdit
      Text = ''

Infine cliccando su ognuno dei 4 pulsanti definiamo le 4 procedure.

Bottone +

procedure TFormCalcolatrice.ButtonAddizioneClick(Sender:
  TObject);
begin
  EditRisultato.Text:=FloatToStr(StrToFloat(EditOp1.Text)+
                                 StrToFloat(EditOp2.Text));
end;

Bottone -

procedure TFormCalcolatrice.ButtonSottrazioneClick(Sender:
  TObject);
begin
  EditRisultato.Text:=FloatToStr(StrToFloat(EditOp1.Text)-
                                 StrToFloat(EditOp2.Text));
end;

Bottone ×

procedure TFormCalcolatrice.ButtonMoltiplicazioneClick(Sender:
  TObject);
begin
  EditRisultato.Text:=FloatToStr(StrToFloat(EditOp1.Text)*
                                 StrToFloat(EditOp2.Text));
end;

Bottone /

procedure TFormCalcolatrice.ButtonDivisioneClick(Sender:
  TObject);
begin
  if StrToFloat(EditOp2.Text)<>0 then
    EditRisultato.Text:=FloatToStr(StrToFloat(EditOp1.Text)/
                                   StrToFloat(EditOp2.Text))
  else if StrToFloat(EditOp1.Text)<>0 then
    EditRisultato.Text:='impossibile'
  else
    EditRisultato.Text:='indeterminato';
end;

Come si può vedere, in questo programma diversamente dai precedenti, si è deciso di effettuare le operazioni direttamente sui risultati delle funzioni di conversione Stringa-Numero (StrToFloat) e di assegnare direttamente il risultato al campo EditRisultato senza utilizzare variabili intermedie. Questo modo di comportarsi rende più veloce la scrittura del codice nel caso delle prime 3 operazioni, ma non così nel caso della divisione. Sta al programmatore decidere quale scelta effettuare.

 1.06 - Calcolatrice