Mémoriser des chiffres !

Résolu
m_cyril1 Messages postés 59 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 3 juin 2005 - 20 avril 2005 à 10:49
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 - 26 avril 2005 à 19:04
Voila mon petit problème, j’ai une Form avec


3 TEdit : le TEdit1 sert entrer des chiffres


le TEdit2 sert de compteur pour savoir le nombre de chiffres rentrés


le TEdit3 sert à visualiser le résultat


3 TButton : le TButton1 sert à mémoriser les chiffres du TEdit1


le TButton2 sert à calculer la somme de tout les chiffres mémorisés


le TButton3 sert à tout effacer


Cela s’apparente à une calculatrice sauf que tant qu’on n’a pas appuyé sur le TButton3 le TEdit3 reste à 0.


Donc si on appuie sur le TButton3, le résultat s’affiche. Et si l’on ajoute d’autre chiffres et qu’on appui de nouveau sur TButton3 il faut que la nouvelle somme calculée vienne s’ajouter à la précédente.
Ca parrait simple mais ça fait deux jours que je me casse les dents dessus

Please HELP!!!!

24 réponses

m_cyril1 Messages postés 59 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 3 juin 2005
22 avril 2005 à 10:04
Hayé J'ai trouvé et la solution est:

type
TForm1 = class (TForm)
EdSaisie: TEdit;
EdNombre: TEdit;
EdResultat: TEdit;
EdVoir: TEdit;
EdNumero: TEdit;
BtMemoriser: TButton;
BtCalculer: TButton;
BtEffacer: TButton;
BtVoir: TButton;
BtQuitter: TButton;
procedure BtQuitterClick(Sender: TObject);
procedure BtMemoriserClick(Sender: TObject);
procedure BtCalculerClick(Sender: TObject);
procedure BtEffacerClick(Sender: TObject);
procedure BtVoirClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
procedure InitialiseCalculs;
public
{ Déclarations publiques } end;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


var
Form1: TForm1;
var TabValue: array of integer;
var n,x:Integer;


implementation


{$R *.dfm}


procedure
TForm1.InitialiseCalculs;
begin

n: =0;
x:= 0;
SetLength(TabValue, n);
EdResultat.Text:='0';
EdNombre.Text:='0';
EdSaisie.Clear;
end;


procedure
TForm1.Form1Create(Sender: TObject);
begin

InitialiseCalculs;
end;


procedure TForm1.BtMemoriserClick(Sender: TObject);
begin


x: =0;
Inc(n);
SetLength(TabValue, n);
TabValue[n-1]:= StrToInt(EdSaisie.Text);
EdNombre.Text:=IntToStr(n);
EdSaisie.Clear;
end;


procedure
TForm1.BtCalculerClick(Sender: TObject);
var i: integer;
begin

for i: =0 to (Length(TabValue)-1) do
x:= x+TabValue[i];
EdResultat.Text:=FloatToStr(x);
end;


procedure
TForm1.BtEffacerClick(Sender: TObject);
begin

InitialiseCalculs;
end;

procedure
TForm1.BtVoirClick(Sender: TObject);
begin
EdVoir.Text: =IntToStr(TabValue[StrToInt(EdNumero.Text)-1]);
end;


procedure
TForm1.BtQuitterClick(Sender: TObject);
begin

Close;
end;

end.


Il reste un tout petit problème, c’est quand on clique une deuxième fois sur calculer bah mon initialisation est dans les choux, mais je pense qu’avec un If et un Else je devrais m’en sortir (je l’espère).



J'ai même rajouté deux Tedit (EdNumero et EdVoir) et 2 deux TButton (BtQuitter et
BtVoir).
BtQuitter qui sert tout simplement à fermer (j’aurais peut être du évité de le préciser) et BtVoir permet de voir un chiffre mémorisé en fonction de son numéro mais je n’ai pas encore trouvé les condition pour éviter d’avoir une quand TabValue est vide.





Par contre c’est cool de m’avoir montré comment fonctionne une procédure privée, parce que je vais en avoir besoin.
0
m_cyril1 Messages postés 59 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 3 juin 2005
22 avril 2005 à 10:12
Ah! merci Kenavo c'est encore plus simple que ce que j'ai fait , et il n'y a plus de problème de calcul.
0
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 1
22 avril 2005 à 11:25
Petites corrections sans grandes importances:
-pourquoi FloatToStr? un simple IntToStr doit suffire.
-si tu veux que ton bouton serve à quitter, pas la peine d'écrire un événement, il suffit de mettre sa propriété Cancel à true (dans l'inspecteur d'objets).
-enfin, je ne comprend pas pourquoi tu met ta variable x en globale. elle ne sert que dans une procédure et change à chaque fois. Tu n'as qu'à faire x:= 0 au début de BtCalculerClick
Je suis content que ton problème soit résolu!
0
m_cyril1 Messages postés 59 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 3 juin 2005
26 avril 2005 à 09:07
Désolé j'ai envoyé mon message et je n'avais pas vu Kenavo m'avais donné la solution et le FloatToStr c'est parce que j'étais entrein de modifier le code pour faire la même chose mais avec des réels.
0
Rejoignez-nous