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 :
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