Convertisseur multi devises

Soyez le premier à donner votre avis sur cette source.

Vue 4 522 fois - Téléchargée 435 fois

Description

Un chti convertisseur 5 devises parametrable

voir le zip pour le code ...

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Une dernière chose mais qui a son importance :
Au démarrage de l'appli, tu crées un Tbitmap :
fond := tbitmap.create;
fond.LoadFromResourceName(hinstance, 'Bitmap1');
form1.Brush.Bitmap := fond;

Seulement voilà, "Fond" n'a pas de propriétaire et donc personne chargé de le détruire à la sortie !
= fuite mémoire
Quand tu fermes ton application, libères les ressouces allouées à Fond par un appel à sa méthode Free.
Ouf !
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Aurais tu oublié de protéger contre les erreurs de division par zéro ?
> nb1 : strtofloat(edit1.text) / tdevise[5].valeur;
Or TDevise[5] est égal à zéro au démarrage. Désactives les boutons pour lesquels le champ valeur du tableau TDevise est à zéro.

Sinon, que se passe-t-il si le fichier devise.dat est manquant ou endommagé ? Je n'ai vu aucun traitement dans ce cas (If FileExists('Devise.Dat') then...)

Pour le style, tu peux facilement traiter plusieurs composants dans une boucle au lieu de coder du genre :
if ed_val1.Text = '' then
ed_val1.text := '0';
if ed_val2.Text = '' then
ed_val2.text := '0';
if ed_val3.Text = '' then
ed_val3.text := '0';
if ed_val4.Text = '' then
ed_val4.text := '0';
if ed_val5.Text = '' then
ed_val5.text := '0'; ,etc

et remplacer plus élégamment par :
//Initialisations
for i:= 1 to 5 do
begin
With TEdit(FindComponent('ed_val'+IntToStr(i))) do
if Text = '' then
begin
Text := '0';
tdevise[i].valeur := 0;
end;
With TEdit(FindComponent('ed_decimal'+IntToStr(i))) do
if Text = '' then
begin
Text := '0';
tdevise[i].decimal := 0;
end;
With TEdit(FindComponent('ed_nom'+IntToStr(i))) do
tdevise[i].nom := Text;

tdevise[i].cle := i;
end;
Tu remarqueras que quand tu mets :
Editxx.Text := '0'
et que, juste aprés, tu écris :
TDevise[n].Decimal := StrToInt(Editxx.Text);
il y a de l'optimisation possible.
Puisque tu connais la valeur contenue dans le contrôle, il est inutile de faire des conversions. Affectes directement la valeur.

Ce ne sont là que quelques pistes de réflexion et STP, inutile de joindre les .exe, les .DCU et les .~* dans ton fichier zip. On est capables de les recréer...

Terminons par un point positif : le design est pas mal.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Aurais tu oublié de protéger contre les erreurs de division par zéro ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.