Vin-s
Messages postés9Date d'inscriptionjeudi 4 octobre 2001StatutMembreDernière intervention 9 mars 2004
-
9 mars 2004 à 11:24
cs_Amadeus
Messages postés123Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention15 mars 2004
-
10 mars 2004 à 08:48
Bonjour,
Cette question s'adresse aux spécialistes de l'environment delphi.
j'ai un code comme ca: (soit dit en passant: "who" est un TCustomControl )
try
who.ma_methode;
except
// rien
end;
who := nil;
"who" est une variable global qui pointe sur un TCustomControl quelconque.
J'ai mis l'execution de "ma_methode" dans un bloc "try except"
car il est possible que "who" soit libéré de l'extérieur.
(par la destruction d'une form)
La fonction contenant ce code doit simplement executer "ma_methode"
de "who" puis, intialiser "who" à nil. (pas le libérer).
Aucun messages d'erreurs n'apparaient si le programme est executé en dehors
de delphi puisque "ma_methode" est contenu dans un "try except".
tout fonctionne parfaitement bien ;)
Le problème c'est qu'à chaque fois que l'execution se déclenche, delphi
stope l'execution du programme. Je dois tout le temps taper F9. c'est
vraiment lourd.
Comment expliquer à delphi qu'il ne faut pas stopper l'execution du programme
pour cette exception ?
Vin-s
Vin-s
Messages postés9Date d'inscriptionjeudi 4 octobre 2001StatutMembreDernière intervention 9 mars 2004 9 mars 2004 à 18:58
"Arrêter sur l'execution delphi" ---> c'est un peu radical :-/
J'ai vachement réfléchi et j'en pense ca:
Une exception c'est une erreur. Il vaut mieux se prendre
un peu la tête à prévenir le déclenchement d'une exception
plutôt que de demander à delphi de ne pas réagir.
Je ne vais donc me servir des exceptions que comme des
assertions C.
Pour répondre à ma question (haha) , je vais faire en sorte
de passer "who" à nil à la destruction de l'object sur lequel
il pointe histoire de pouvoir faire un test genre
if who <> nil then ...
merci pour l'astuce. ca peut servir (activeX qui déclenche des
exceptions par exemple...)
Bon code.
Vin-s
cs_Amadeus
Messages postés123Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention15 mars 20042 10 mars 2004 à 08:48
Tu voulais une solution qui d'évite de faire F9 a chaque fois, donc ma solution est utile en débugge, en exécution normale l'exception serai remonté normalement.
Et au lieu de who <> nil tu peux utiliser Assigned.