Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5040 connectés 

 


Dernière réponse
Sujet : DELPHI try except?
AGA :ouch: MySQL prend des vacances...
 
/!\ Disclaimer : Le code du forum n'est en rien impliqué dans cette erreur :p /!\
-----
ouais je vais essayé

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
AGA :ouch: MySQL prend des vacances...
 
/!\ Disclaimer : Le code du forum n'est en rien impliqué dans cette erreur :p /!\
-----
ouais je vais essayé
taureau c'est pas si compliqué, il suffit que tu donnes 13 comme valeur par défaut, comme cela si tes utilisateurs entre du texte, strtointdef va te retourner 13 et tu verras bien alors qu'il y a erreur...
AGA d'ou intercepter l'expection, mais ça marche po bien
AGA je veux pas une val par defaut, je veux que si c pas bon (l'utilisateur a mis du txt par exemple) je dise c pas bon, RECOMMENCE
taureau utilise StrToIntDef à la place de StrToInt, la syntaxe est :  
 
function StrToIntDef(const S: string; Default: Integer): Integer;
 
le paramètre default est retourné si une erreur se produit lors de l'évaluation, comme cela plus d'exception à gérer c'est plus simple et plus propre.
 
StrToIntDef est dans l'unit SysUtils
 
pense aussi à remplacer Data.TParametres.FieldByName('ParRappel').asInteger:=StrToInt(delai); par Data.TParametres.FieldByName('ParRappel').asInteger:=chainerecu
 
a mon avis c'était là que se produisait l'exception car tu avais oublié de protéger la zone
AGA J'arrive pas à intercepter l'exception, j'ai qd même droit un msg barbare
 try
          chaineRecu := StrToInt(delai);
       except
       on EConvertError do
             ShowMessage('C tout planté')
       else
       begin
             WHILE  (chaineRecu>12) OR (chaineRecu<0)  DO // Tant que le délai est plus grand que 12
             begin
               ShowMessage('Délai de rappel trop grand! Valeurs autorisées [0..12]'); //Message d'erreur
               reponseRappel:=InputQuery('Délai de rappel', 'Entrer le délai de rappel des factures (en mois)', delai);
             end;
             IF reponseRappel=TRUE THEN //Si l'utilisateur clique sur OK
                begin
                     Data.TParametres.FieldByName('ParRappel').asInteger:=StrToInt(delai);
                     Data.TParametres.Post; //Insertion de l'information
                end
             ELSE
                 data.TParametres.Cancel; //On annule les modifications non encore insérées
       end;
       end;

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)