Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD10] Traitement d'exception sur projet et composant

5 réponses
Avatar
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é.

5 réponses

Avatar
Pascal F
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
Avatar
Emmanuel Haefele
"Pascal F" a écrit

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é.
Avatar
Pascal F
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
Avatar
Emmanuel Haefele
"Pascal F" a écrit:

> 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é.
Avatar
Emmanuel Haefele
"Pascal F" a écrit

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é.