Il faut donner des noms plus explicites à tes variables :
"n10,n11,n12,n13,n1,n2,n4,n5,n6,n7", ça évoque pas grand chose,
"Long1, Larg1, Aire1,Long2, Larg2, Aire2", Prix, par exemple, ça cause plus.
Nommer les composants permet de mieux s'y retrouver dans le code.
"EditPrix" ou "edPrix" est plus évocateur que "Edit7.Text".
Une fonction séparée pour le calcul du prix aurait été plus intéressante à mon avis.
Le code est un peu lourd et redondant.
Voici un petit allègement (et encore...) avec quelques commentaires :
procedure TForm1.Button3Click(Sender: TObject);
var
Long1, Larg1, Aire1,
Long2, Larg2, Aire2,
PrixGros, PrixDetail : Extended;
begin
Long1 := StrToFloat(Edit1.Text);
Larg1 := StrToFloat(Edit2.Text);
Aire1 := Long1 * Larg1; // surface de la plaque de depart
Edit5.Text := FloatToStr(Aire1);
Long2 := StrToInt(Edit3.Text);
Larg2 := StrToInt(Edit4.Text);
Aire2 := Long2 * Larg2; // surface de la plaque à obtenir
Edit6.Text := Floattostr(Aire2);
// les 2 lignes suivantes sont inutiles :
//N11:=Strtofloat(Edit6.Text);
//N13:=Strtofloat(Edit5.Text);
PrixGros := StrToFloat(Edit7.Text);
PrixDetail := (Aire2 * PrixGros) / Aire1; //calcul le tarif de la plaque a obtenir
Edit8.Text := Floattostr(PrixDetail);
// ne pas mettre plusieur instructions sur la même ligne :
if PrixGros = 0 then
ShowMessage('Le tarif de la plaque de départ n est pas valide');
if Long2 > Long1 then
Edit3.Color := clred
else edit3.Color := clwhite;
if Larg2 > Larg1 then
Edit4.Color := clred
else Edit4.Color := clwhite;
// pourquoi pas, mais il va toujours rester comme ça :
edit8.Color := cllime;
// simplification du code ici :
if (Long2 > Long1) or (Larg2 > Larg1) then
begin
Edit8.Text := 'invalide';
ShowMessage('ATTENTION!! La valeur à obtenir est plus grande que la valeur de depart');
end;
// pas vraiment utile : //if (Long1 Long2) and (Larg1 Larg2)
// then edit8.text := (edit7.text);
end;
9 déc. 2007 à 16:03
Il faut donner des noms plus explicites à tes variables :
"n10,n11,n12,n13,n1,n2,n4,n5,n6,n7", ça évoque pas grand chose,
"Long1, Larg1, Aire1,Long2, Larg2, Aire2", Prix, par exemple, ça cause plus.
Nommer les composants permet de mieux s'y retrouver dans le code.
"EditPrix" ou "edPrix" est plus évocateur que "Edit7.Text".
Une fonction séparée pour le calcul du prix aurait été plus intéressante à mon avis.
Le code est un peu lourd et redondant.
Voici un petit allègement (et encore...) avec quelques commentaires :
procedure TForm1.Button3Click(Sender: TObject);
var
Long1, Larg1, Aire1,
Long2, Larg2, Aire2,
PrixGros, PrixDetail : Extended;
begin
Long1 := StrToFloat(Edit1.Text);
Larg1 := StrToFloat(Edit2.Text);
Aire1 := Long1 * Larg1; // surface de la plaque de depart
Edit5.Text := FloatToStr(Aire1);
Long2 := StrToInt(Edit3.Text);
Larg2 := StrToInt(Edit4.Text);
Aire2 := Long2 * Larg2; // surface de la plaque à obtenir
Edit6.Text := Floattostr(Aire2);
// les 2 lignes suivantes sont inutiles :
//N11:=Strtofloat(Edit6.Text);
//N13:=Strtofloat(Edit5.Text);
PrixGros := StrToFloat(Edit7.Text);
PrixDetail := (Aire2 * PrixGros) / Aire1; //calcul le tarif de la plaque a obtenir
Edit8.Text := Floattostr(PrixDetail);
// ne pas mettre plusieur instructions sur la même ligne :
if PrixGros = 0 then
ShowMessage('Le tarif de la plaque de départ n est pas valide');
if Long2 > Long1 then
Edit3.Color := clred
else edit3.Color := clwhite;
if Larg2 > Larg1 then
Edit4.Color := clred
else Edit4.Color := clwhite;
// pourquoi pas, mais il va toujours rester comme ça :
edit8.Color := cllime;
// simplification du code ici :
if (Long2 > Long1) or (Larg2 > Larg1) then
begin
Edit8.Text := 'invalide';
ShowMessage('ATTENTION!! La valeur à obtenir est plus grande que la valeur de depart');
end;
// pas vraiment utile : //if (Long1 Long2) and (Larg1 Larg2)
// then edit8.text := (edit7.text);
end;
Voilà.
A +
9 déc. 2007 à 13:49
9 déc. 2007 à 13:27
Ouf... j'étais un peu inquiet, là.
Sinon, retire les ".~machin" et ".dpu" qui encombrent le zip et ne servent à rien.
9 déc. 2007 à 13:01
C'est mal barré...