Ouvrir une fenetre parametrée depuis un thread
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Voila, j'ai un problème avec un thread :

J'ai une partie de mon appli qui intégre une messagerie instantanée par sockets, le dialogue marche bien entre mes fenetres de chat. Par contre l'ors de la premiére réception d'un message, je voudrais que le fenetre de chat s'ouvre automatiquement. L'attente de reception des messages se faisant dans une boucle qui est elle même dans un thread.

Le probléme, c'est que la fenetre ouvrete depuis le thread ne prend pas la main sur le thread, elle n'execute même pas son code d'initialisation. J'ai biduoillé avec "multitache", mais rien à faire...

Si je stoppe le thread aprés l'ouverture de la fenetre, evidement, ça "tue" la fenetre

Voici le code du thread en question, et c'est la procédure traitementMessage(chaineTemp) qui ouvre ma fenetre...

PROCEDURE socketEcoute(_socket, _procTrt)
chaineTemp est une chaîne
BOUCLE
	SI SocketAttendConnexion (_socket) ALORS
		Canal est une chaîne
		Canal = SocketAccepte (_socket)
		chaineTemp = SocketLit(Canal)
		traitementMessage(chaineTemp)
		SI 1 = 3 ALORS 
			SORTIR
		FIN
	FIN
FIN 

Contribution le : 04/01/2005 18:23
Créer un fichier PDF de la contribution Imprimer


Re: Ouvrir une fenetre parametrée depuis un thread
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Ah ! je viens de voir ça :

Pour ceux qui me prennent pour un malade en lisant :

SI 1 = 3 ALORS
SORTIR
FIN


c'est simplement pour eviter d'avoir un warning de boucle infinie dans mon debugger...

Contribution le : 05/01/2005 13:12
Créer un fichier PDF de la contribution Imprimer


Re: Ouvrir une fenetre parametrée depuis un thread
Anonyme

Bonjour,

L'ouverture d'une fenêtre via un thread doit utiliser la méthode du PostMessage() - voir le thread concernant le remplissage d'une table mémoire/fichier par thread, parfaitement applicable - (Ce point est même précisé dans l'aide de Windev)

++ramses


Contribution le : 05/01/2005 15:25
Créer un fichier PDF de la contribution Imprimer


Re: Ouvrir une fenetre parametrée depuis un thread
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Désolé Ramses, mais j'ai ni trouvé le post dont tu parles, ni trouvé par quelle obscur enchainement de code, je vais pouvoir ouvrir une fenêtre de mon projet avec PostMessage()

Contribution le : 11/01/2005 13:26
Créer un fichier PDF de la contribution Imprimer


Re: Ouvrir une fenetre parametrée depuis un thread
Anonyme
Bonjour,

Pour mémoire:

- Déclarer une constante type WM_MYEVT_PERSO ayant une valeur > WM_USER (genre WM_USER + 0x0A0F, vérifier simplement que la valeur n'est pas déjà utilisée)

- Créer une procodure WM_Perso(Message, wParam, lParam) avec le code de renvoie :

SI Message=WM_MYEVT_PERSO ALORS
SI FenEtat(f_archive)=Inexistant ALORS Ouvre(MaFenêtre)
FIN

[ vous pouvez rajouter des contrôles sur wParam & lParam ]

- Déclarer la gestion de l'évènement dans la fenêtre : Evénement("WM_PERSO", "MyWindow", WM_MYEVT_PERSO)

- Dans le thread de traitement après l'exécution de la requête faire un PostMessage(Handle(MyWindow), WM_MYEVT_PERSO, wParam, lParam) pour déclencher le code d'ouverture de la fenêtre

++ ramses

Contribution le : 11/01/2005 13:40
Créer un fichier PDF de la contribution Imprimer


Re: Ouvrir une fenetre parametrée depuis un thread
DSI WDF
Inscrit:
06/04/2004 12:07
Post(s): 337
Merci beaucoup Ramses, c'était juste ce "petit détail" qui me manquait

Je test ça dés que j'ai un peu de temps...

Seb,

Contribution le : 12/01/2005 17:50
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2