DELPHI try except? - Programmation
Marsh Posté le 05-10-2001 à 11:56:47
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
Marsh Posté le 05-10-2001 à 12:13:34
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
Marsh Posté le 05-10-2001 à 12:14:07
d'ou intercepter l'expection, mais ça marche po bien
Marsh Posté le 05-10-2001 à 13:45:35
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...
Marsh Posté le 05-10-2001 à 13:49:44
MySQL prend des vacances...
/!\ Disclaimer : Le code du forum n'est en rien impliqué dans cette erreur /!\
-----
ouais je vais essayé
Marsh Posté le 05-10-2001 à 11:18:06
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;
---------------
ma vie, ma carrière! - Un trait d’union entre des photos et des mots.