Delphi V1.SansException

 (CD-ROMDelphi.Exceptions)



: Les projets Delphi


Objectif : Effectuer la saisie de 2 entiers et n'autoriser le calcul de leur somme et de leur produit que lorsque les 2 entiers sont entrés.

La fiche principale, le code associé dans la unit
 

Exécuter le programme
 

La fiche principale du  projet :

                                                                                                Remonter 

Le code de la Unit fiche principale :

unit Usolexc;

 interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

 type
  TForm1 = class(TForm)
    Editnbr1: TEdit;
    Editnbr2: TEdit;
    Labelnbr1: TLabel;
    ListBoxOperation: TListBox;
    Editmessage: TEdit;
    LabelResultat: TLabel;
    Labelnbr2: TLabel;
    Label1: TLabel;
    ButtonCalcul: TBitBtn;
    Labeltypoperat: TLabel;
    Panel1: TPanel;
    Editresult: TEdit;
    procedure FormActivate(Sender: TObject);
    procedure Editnbr1Change(Sender: TObject);
    procedure Editnbr2Change(Sender: TObject);
    procedure ListBoxOperationClick(Sender: TObject);
    procedure ButtonCalculClick(Sender: TObject);
  private
    { Déclarations private }
  public
    { Déclarations public }
  end;

 var
  Form1: TForm1;
  App_Path:string;
  oper1,oper2,operat:boolean; //les 3 drapeaux
  Toper:array[0..5]of string;

 implementation
{$R *.DFM}
{******************** procédures internes *********************}
procedure TestEntrees;
{positionne le bouton si les drapeaux sont levés}
begin
 if oper1 and oper2 and operat then
  Form1.ButtonCalcul.enabled:=true // si oui: le bouton calcul est activé
end;

 procedure RAZTout;
begin
 with Form1 do
 begin
  ButtonCalcul.enabled:=false;      // le bouton calcul se désactive
  Editnbr1.clear;
  Editnbr2.clear;
  Editresult.clear;
  Editmessage.clear;
  oper1:=false;
  oper2:=false;
  operat:=false;
 end
end;

 {***************************************************************}
procedure TForm1.FormActivate(Sender: TObject);
begin
  RAZTout;
  Toper[0]:='*';      Toper[1]:='/';
  Toper[2]:='+';      Toper[3]:='-';
  Toper[4]:=' div ';  Toper[5]:=' mod ';
end;

 procedure TForm1.Editnbr1Change(Sender: TObject);
begin
 if Editnbr1.text<>'' then
 begin
  oper1:=true;
  TestEntrees;
 end
 else
  begin
   ButtonCalcul.enabled:=false;
   oper1:=false; // drapeau de Editnbr1 baissé
 end
end;

 procedure TForm1.Editnbr2Change(Sender: TObject);
begin
if Editnbr2.text<>'' then
 begin
  oper2:=true;
  TestEntrees;
 end
 else
  begin
   ButtonCalcul.enabled:=false;
   oper2:=false; // drapeau de Editnbr2 baissé
 end
end;

 procedure TForm1.ListBoxOperationClick(Sender: TObject);
begin
 operat:=true;
 TestEntrees;
 Labeltypoperat.caption:=Toper[ListBoxOperation.ItemIndex];
end;

 procedure TForm1.ButtonCalculClick(Sender: TObject);
var op1,op2,result:smallint;
begin
  ButtonCalcul.enabled:=false;
  op1:=strtoint(Editnbr1.text);
  op2:=strtoint(Editnbr2.text);
   case ListBoxOperation.ItemIndex of
    0: result:=op1 * op2;
    1: result:=trunc(op1 / op2);
    2: result:=op1 + op2;
    3: result:=op1 - op2;
    4: result:=op1 div op2;
    5: result:=op1 mod op2;
   end;
  Editresult.text:=inttostr(result);
  Editmessage.text:=inttostr(op1)+Toper[ListBoxOperation.ItemIndex]+' '+inttostr(op2)+
                        '= '+Editresult.text;
end;
end.                                                                        Remonter 



EXECUTION DU PROGRAMME :