CALCULATRICE COMME CELUI DE WINDOWS

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 9 janv. 2007 à 18:50
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 23 janv. 2007 à 17:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41033-calculatrice-comme-celui-de-windows

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
23 janv. 2007 à 17:39
Durée de vie prévue de cette source : 2 minutes
Durée de vie actuelle de cette jour : 22 jours
Foxi a demandé un .ZIP : pas de retour
Comme Loda le souligne : "Merci d'éviter de poster des sources de convertisseurs euro, calculatrice etc."
Au vu du morceau de code visible, aucun composant nommé 'de tête , dit moi a quoi sert le Button6, tu ne peux pas ? normal...), 4 opérations arithmétiques possibles avec 4 procédures alors qu'une seule suffirait...
Bref, elle n'atteindra pas 23 jours de vie.
ps : faut oser écrire "comme celui de windows", j'aurais pas osé ...
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
10 janv. 2007 à 09:25
salut,

y a aussi deux-trois autres points:

- Citation de la page d'ajout d'une source : "Merci d'éviter de poster des sources de convertisseurs euro, calculatrice etc."
- tes compo ne sont pas nommés.
- Edit1KeyPress : tu peux utiliser la même méthode pour les deux event.
- certain fonction très basic sont manquantes: les nombres négatifs? les puissance? les racines carrée? pas de mémoire?

Il ne faut pas te sentir obligé de poster tes sources. la majorité d'entre nous code bien plus qu'il ne post... On post surtout les sources mettant en avant une technique particulière ou celle qui font qqch d'utile (librairie particulière, utilitaire spécifique, ...)

pour un début c'est pas mal, tes var sont plus ou moins bien nommée, ton code est pas si mal. Il manque surtout de structure / procedure.

bonne continuation,

Loda
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
9 janv. 2007 à 23:00
Salut Ibrahim.

Il faut absolument joindre un zip, tout le monde n'aura pas la patience d'entreprendre un travail de saisie pour tester ton code.
Bon, il semblerait que tu sois débutant, et nouveau sur Codes Sources.
Je ne voudrais donc pas casser ton enthousiasme, mais ce code n'apporte pas grand chose d'intéressant. Non pas qu'il soit mauvais, mais il n'a pas sa place ici.
S'il s'agit de demander des conseils, il vaut mieux poster sur le forum.
Des conseils, en voici donc un ou deux, si tu veux bien les accepter.

- inutile de formater le résultat ainsi '0.00' puisque tu n'obtiens jamais un réel ;

- tu peux regrouper des méthodes qui se ressemblent en une seule. Ainsi, tu remarqueras que le code dans les évènements OnClick des boutons 1, 2, 3, 4, 5 se ressemblent beaucoup.
Donc, tu peux créer une fonction ainsi :

const
Addition = 0;
Soustraction = 1;
Multiplication = 2;
Division = 3;
Modulo = 4;

function Calcule(const s1, s2: string; Operator: Byte): string;
var
a, b, r: Real;
Bat: Integer;
begin
Val(s1, a, Bat);
Val(s2, b, Bat);
case Operator of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3: r := a / b;
4: r := Trunc(a) mod Trunc(b);
end;
Str(r:3:2, Result);
end;

Tu pourras relier ainsi tous les boutons concernés au même évènement OnClick, sur Button1 par exemple, après leur avoir affecté à chacun un tag (0, 1, 2, 3, 4).
Et tu appelleras la fonction Calcule dans cet évènement :

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text := Calcule(Edit1.Text, Edit2.Text, (Sender as TButton).Tag);
end;

Mais tu remarqueras que j'ai déclaré des constantes, donc si tu préfères, tu peux appeler la fonction sur chaque évènement OnClick des boutons ainsi :

Edit3.Text := Calcule(Edit1.Text, Edit2.Text, Addition);
ou bien
Edit3.Text := Calcule(Edit1.Text, Edit2.Text, Soustraction);
ou bien
Edit3.Text := Calcule(Edit1.Text, Edit2.Text, Modulo);
etc...

Bon, il y aurait beaucoup à dire, mais là je fatigue...

En espérant t'avoir été de bon conseil... bonne continuation et bienvenue dans la communauté.

japee
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
9 janv. 2007 à 18:50
merci de fournir un Zip avec tes sources...
c'est mieux.
Rejoignez-nous