|
||||
|
||||
|
Capitolo 2Distributore automatico
L'utente seleziona il prodotto e inserisce le monete (digita il numero)
nel campo Edit. Premendo il bottone il credito viene incrementato. Tutti i componenti presenti sulla form sono giΰ stati visti in precedenza, e comunque sono elencati nel listato del programma. La variabile privata credito (di tipo Currency) viene impostata a 0, quando il programma viene lanciato (evento OnCreate della form). La procedura principale θ associata alla pressione del tasto Dammi la
lattina. Viene letto il contenuto di EditMonete, se non θ vuoto,
e memorizzato nella variabile monete. unit UnitDistributoreAutomatico; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TFormDistributoreAutomatico = class(TForm)
RadioGroupSelezionaProdotto: TRadioGroup;
LabelPrezzo: TLabel;
LabelInserireMonete: TLabel;
EditMonete: TEdit;
ButtonDammiLattina: TButton;
LabelMessaggio: TLabel;
LabelCredito: TLabel;
procedure FormCreate(Sender: TObject);
procedure ButtonDammiLattinaClick(Sender: TObject);
private
{ Private declarations }
credito: Currency;
public
{ Public declarations }
end;
var
FormDistributoreAutomatico: TFormDistributoreAutomatico;
implementation
{$R *.DFM}
procedure TFormDistributoreAutomatico.FormCreate
(Sender: TObject);
begin
credito:=0;
end;
procedure TFormDistributoreAutomatico.ButtonDammiLattinaClick
(Sender: TObject);
var
monete, mancanti: Currency;
begin
if EditMonete.Text<>'' then
begin
monete:=StrToCurr(EditMonete.Text);
credito:=credito+monete;
if credito<1 then
begin
mancanti:=1-credito;
case RadioGroupSelezionaProdotto.ItemIndex of
0: LabelMessaggio.Caption:='La Coca Cola costa 1 ,
inserire ancora '+CurrToStr(mancanti);
1: LabelMessaggio.Caption:='La Pepsi costa 1 ,
inserire ancora '+CurrToStr(mancanti);
2: LabelMessaggio.Caption:='La Fanta costa 1 ,
inserire ancora '+CurrToStr(mancanti);
3: LabelMessaggio.Caption:='La Sprite costa 1 ,
inserire ancora '+CurrToStr(mancanti);
4: LabelMessaggio.Caption:='L''Estatθ costa 1 ,
inserire ancora '+CurrToStr(mancanti);
end;
LabelCredito.Caption:='Credito '+CurrToStr(credito);
EditMonete.Text:='';
end
else
begin
credito:=credito-1;
LabelMessaggio.Caption:='Ritira il prodotto.';
LabelCredito.Caption:='Credito '+CurrToStr(credito);
EditMonete.Text:='';
end;
end;
end;
end.
|
|||
|
||||