Annulation d'opération

cs_lidia22 Messages postés 37 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 10 mai 2010 - 18 avril 2010 à 11:35
cs_lidia22 Messages postés 37 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 10 mai 2010 - 18 avril 2010 à 17:14
Bonjour,
je voulais faire une petite opération de soustraction mais, j'ai mis un boutton de validation pour faire la soustraction mais avant de le faire lorsque je clik sur valider il m'affiche un message (Etes vous sur de valider) si oui alors il fait la soustraction, le probleme est que lorsque je confirme il ne fait pas l'opération en plus je sais pas coment faire lorsque je clik sur NON il annule l'opération alors si vous pouvez m'aidez car je suis débutante en Delphi voila le codesi dessou:

begin
MM:=strtofloat(EditMontantMarch.Text);
D:=strtofloat(EditDpense.Text);
if MessageDlg('Etes vous sur de valider!',
mtConfirmation, [mbOK, mbNo], 0) = mrOK then
begin
MessageDlg('Validation annuler', mtInformation,
[mbOk], 0);
close;
if MessageDlg([mbOk]) then
begin
MM:=MM-D;
EditDpense.SelectAll;
EditDpense.SetFocus;
EditMontantMarch.Text:=floattostr(MM);
end;

4 réponses

ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
18 avril 2010 à 13:01
Bonjour.

Tu as 2 MessageDlg de trop !!!

procedure TForm1.ValidationButtonClick(Sender: TObject);
var
  MM: double;
begin
    if MessageDlg('Etes vous sûr de valider!', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    try
       MM:= StrToFloat(EditMontantMarch.Text) - StrToFloat(EditDpense.Text);
       EditDpense.SelectAll;
       EditDpense.SetFocus;
       EditMontantMarch.Text:=floattostr(MM);
    except
       ShowMessage('Erreur dans les montants !);
    end;
end;


J'ai remplacé le begin...end par try...except...end; : si tu ne connais pas, consulte l'aide Delphi : cela permet de gérer les erreurs.

A +
Thierry
0
cs_lidia22 Messages postés 37 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 10 mai 2010
18 avril 2010 à 15:23
mercii! ca marche bien,mais la je suis entraine de saisir sur des champ de table"TDBedit" et en même temps les valeur se rempli sur "TDBGrid"
mais lorsque je confirme la soustraction ça change dans TDBEDIT mais ça change pas sur TDBGrid
0
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
18 avril 2010 à 16:51
Si je me rappelle bien comment marche un TDBEdit, la valeur du champ n'est pas directement modifiée en changeant la propriété Text. Elle ne l'est qu'à l'Exit du DBEdit. Or ici tu changes le Text après avoir quitté EditMontantMarch. Donc normal de ne pas voir le résultat dans le grid.
Place la ligne "EditMontantMarch.Text:=floattostr(MM);" avant "EditDpense.SetFocus;".

Une remarque : n'oublie pas de valider les changements dans ta table par "Post" (voir aide Delphi).
Après le Post, tous les changements se retrouveront dans le grid.
0
cs_lidia22 Messages postés 37 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 10 mai 2010
18 avril 2010 à 17:14
merciii!
ca a marché lorsque j'ai utilisé refresh aussi
table1.Refresh;
dbgrid1.Refresh;

mais la j'ai un autre problème aussi, lorsque je sais des montant dans la table, a chaque fois quand je clik sur + di DBNavigator ca me donne bien sur des champ vide mais moi je veut une somme la garder fix c à d lorsque je clik sur + se montant la il reste affiché et les autre vide,
désolé pour le dérangement!

amani
0
Rejoignez-nous