[WD10] Traitement d'exception sur projet et composant

Le
Emmanuel Haefele
Bonjour,

Dans un projet WinDev je fais appel à un composant. Si je rencontre un
problème dans mon composant, je souhaiterais que le traitement d'exception
du projet placer à l'initialisation de ce dernier soit exécuté. J'ai sans
doute mal cherché mais je n'ai pas trouvé le moyen d'y parvenir.

Avez-vous une idée de la manière de procéder ?

Par avance merci.


Amicalement,

Emmanuel Haefelé.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal F
Le #14647111
Il se trouve que Emmanuel Haefele a formulé :
Bonjour,

Dans un projet WinDev je fais appel à un composant. Si je rencontre un
problème dans mon composant, je souhaiterais que le traitement d'exception
du projet placer à l'initialisation de ce dernier soit exécuté. J'ai sans
doute mal cherché mais je n'ai pas trouvé le moyen d'y parvenir.

Avez-vous une idée de la manière de procéder ?

Par avance merci.


Amicalement,

Emmanuel Haefelé.



j'ai une solution pour les classes du composant:
dans les membres des classes je déclare
PUBLIC GLOBALE
NomProcErreur est une chaîne // Nom de la procédure de traitement des erreurs
FIN
Dans le constructeur de la classe
QUAND EXCEPTION
ExécuteTraitement(::NomProcErreur,trtProcédure)
ExceptionActive()
FIN

Lors de l'initialisation du projet utilisant les classes du composant, j'affecte au membre de la classe le nom de la procédure de
traitement des erreurs.
Pour les collections de procédures et fenetres de composant, je ne sais pas.

--
Pascal

Ne garder que le prénom pour me joindre
Emmanuel Haefele
Le #14647031
"Pascal F"
Bonjour Pascal,

j'ai une solution pour les classes du composant:



J'ai bien une solution du même genre.

Dans le code d'initialisation du composant je fais la chose suivante :

// Nom de la procédure de traitement des erreurs dans le projet
gpsNomProcédureException est une chaîne = "TraiterException"

QUAND EXCEPTION
ExécuteTraitement (gpsNomProcédureException, trtProcédureProjet )
// ExceptionActive()
FIN

TraiterException est une procédure glogale dans mon projet et d'après la
documentation un truc pareil devrait fonctionner.

Mais rien n'y fait, la procédure globale du projet n'est pas exécutée et
dans ce cas précis aucun message d'erreur windev n'est affiché. Simplement
l'appel du composant me rend faux au lieu de vrai, ce qu'il rend lorsqu'il
n'y a pas d'erreur.

Tu as déjà essayé cette fonction trtProcédureProjet ?


Amicalement,

Emmanuel Haefelé.
Pascal F
Le #14647011
Emmanuel Haefele a exposé le 13/04/2007 :

Dans le code d'initialisation du composant


Qu'est-ce que tu appelle le code d'initialisation du composant? le code du projet du composant? Parceque dans mes composants je
n'inclu jamais le code du projet.


Tu as déjà essayé cette fonction trtProcédureProjet ?


oui depuis des classes, aussi bien venant d'un composant que dans le projet, ou que des boutons d'une fenetre d'un composant.
Par contre, j'ai eu pas mal de soucis surtout en 11 avec le dialogue projet composant. Pour la plupart de mes composants, il a
fallu que je dise qu'ils partagent le contexte d'execution du projet (option 3 des options de compilation du composant). Ce qui
fait que je ne peux pas débeugguer le composant avec le projet.


Amicalement,

Emmanuel Haefelé.



--
Pascal

Ne garder que le prénom pour me joindre
Emmanuel Haefele
Le #14646991
"Pascal F"
> Dans le code d'initialisation du composant
Qu'est-ce que tu appelle le code d'initialisation du composant? le code
du projet du composant?



Oui dans la partie code d'initialisation du projet du composant.

Ce qui
fait que je ne peux pas débeugguer le composant avec le projet.



Etant en version 10, j'en suis au même point que toi. Pas simple de
débugger dans ce contexte.

Pour finir donc Il n'y a aucune solution à priori pour régler ce problème,
dommage ...

Merci pour de ton avis en tout les cas.


Amicalement,

Emmanuel Haefelé.
Emmanuel Haefele
Le #14644041
"Pascal F"
Bonjour Pascal,

Lors de l'initialisation du projet utilisant les classes du composant,
j'affecte au membre de la classe le nom de la procédure > de traitement
des erreurs.
Pour les collections de procédures et fenetres de composant, je ne sais
pas.



Pour information ça fonctionne également sur les collections de procédures
et les fenêtres mais pas moyen de gérer une et une seule exception pour le
composant lors de son initialisation, il faut les gérer procédure par
procédure.

C'est extrêmement fastidieux avec les risques d'erreurs (d'oubli) que ça
comporte. Si quelqu'un a trouvé une solution pour gérer une exception
globale sur un composant, je suis vivement intéressé !


Amicalement,

Emmanuel Haefelé.
Publicité
Poster une réponse
Anonyme