PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → [Composant] Thread + procédure
[Composant] Thread + procédure
Started by ralarabi, Apr., 13 2006 6:45 PM - No answer
Posted on April, 13 2006 - 6:45 PM
Bonjour,

je developpe aujourd'hui un composant X qui sera utilisé dans une application(projet) Y.


Premier probléme :

Dans ce composant j'ai une fenetre nommée "Interface" ouverte donc par le projet client.

L'appui sur un des boutons de cette fenetre execute le code suivant :



AD_Start()


qui est une procédure globale du composant.

Voici le code de AD_Start() :


ThreadExecute("NomThread",threadNormal,"CInterface::ThreadClient")


Ca lance donc un thread chargé d'executer une méthode globale de class

Dans la documentation windev on peut lire :


Citation :
Si <Procédure W-Langage> est une méthode globale de classe , le "thread" est automatiquement arrêté à la fin de l'exécution du projet.



Ce que je fais est que dans cette methode globale de classe je fais un trace dans un fichier ( pour voir si mon thread travaile toujours)

Mon probléme est que dés que je ferme la fenetre mon thread est arrété ???


Second probléme :


j'execute ce code dans une méthode de class de mon composant :


ExécuteTraitement(:NOM_PROC,trtProcédureProjet)


où NOM_PROC représente le nom d'une procédure existante dans le projet client.

Dans la doc windev on peut lire :


Citation :
trtProcédureProjet
Exécute la procédure désignée. Cette procédure est une procédure du projet accueillant le composant WinDev / WebDev.
Ce paramètre peut être utilisé uniquement pour un composant WinDev / WebDev intégré dans un autre projet.


Cependant ca n'execute pas la procédure globale de mon projet client

Voici l'erreur :


Exception composant Interface
Dump de l'erreur du module <WD90VM.DLL> <9.01Ga>.

- Appel WL :
Traitement de <CInterface.Transmission>, ligne <74>, thread <0>
Fonction <ExécuteTraitement>, n° de syntaxe <0>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 1004

- Code erreur WD55 : 0

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
Le code doit être recompilé.

- Infos de debug :
En-tête invalide
Identifiant objet : 143e5b78032965c2
Identifiant code : 00070000
Fonction (0,0)

- Infos attachées :
EIT_DATEHEURE : 13/04/2006 16:29:35
EIT_PILEWL :
Méthode Transmission(CInterface.Transmission), ligne 74
Méthode ThreadClient (CInterface.ThreadClient), ligne 30





Ai-je mal compris la doc ou alors je fais quelque chose mal ?



Merci de votre aide