PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD9 - 34i] - Ouverture de fenêtre depuis un Thread
[WD9 - 34i] - Ouverture de fenêtre depuis un Thread
Débuté par guest, 03 nov. 2005 15:28 - 6 réponses
Posté le 03 novembre 2005 - 15:28
Bonjour,

je dois ouvrir une fenêtre avec OuvreSoeur() depuis une procédure appelée par un Thread.
J'ai tout bien fait comme indiqué dans l'aide, à savoir :

- Déclaré un évènement dans la fenêtre qui doit réagir au message 'DIALOGUE'
- Effectué un PostMessage() dans ma procédure appelé dans le Thread qui envoie ce fameux message 'DIALOGUE'

le PostMessage renvoie Vrai mais la procèdure qui doit être exécutée par l'évènement recevant le message 'DIALOGUE' n'est jamais lancée.

Pouvez-vous me dire ce que j'ai oublié ?

Merci
Posté le 03 novembre 2005 - 11:19
Salut,

je te donne un code que j'ai fait et qui fonctionne très bien. Ceci permet
à un thread d'informer le thread principal de fermer la fenetre en cours.
//Déclaration globales de la fenetre
iHandleFenetre est un entier
//initialisation de la fenetre
//Création de l'événement dont le message à capter est "fermefenetre" et qui
exécutera la fonction FenFerme
iHandleFenetre = Evénement("FenFerme","*.*","fermefenetre")
ThreadExécute("th1",threadNormal,"Impr")


PROCEDURE Impr()
.....//Code de la fonction
//Fin de la fonction, on veut fermer la fenetre en cours par le thread
principal
PostMessage(iHandleFenetre,"fermefenetre",0,0)

PROCEDURE FenFerme()
Ferme()


Mathieu
Posté le 03 novembre 2005 - 11:53
Désoler
petite faute lors de la retranscription...

Mathiei
Posté le 03 novembre 2005 - 17:32
pkoi iHandleFenetre prend pour valeur le retour de Evenement ?

et pas plutôt iHandleFenetre = handle(mafenetre)

?!

"Mathieu Kurth" <mkurth@difemax.com> a écrit dans le message de news:
436a2525@news.pcsoft.fr...

Salut,

je te donne un code que j'ai fait et qui fonctionne très bien. Ceci
permet
à un thread d'informer le thread principal de fermer la fenetre en cours.
//Déclaration globales de la fenetre
iHandleFenetre est un entier
//initialisation de la fenetre
//Création de l'événement dont le message à capter est "fermefenetre" et
qui
exécutera la fonction FenFerme
iHandleFenetre = Evénement("FenFerme","*.*","fermefenetre")
ThreadExécute("th1",threadNormal,"Impr")


PROCEDURE Impr()
....//Code de la fonction
//Fin de la fonction, on veut fermer la fenetre en cours par le thread
principal
PostMessage(iHandleFenetre,"fermefenetre",0,0)

PROCEDURE FenFerme()
Ferme()


Mathieu

Posté le 03 novembre 2005 - 20:12
ok ;)
merci pour la précision !

"Mathieu Kurth" <mkurth@difemax.com> a écrit dans le message de news:
436a2d3b@news.pcsoft.fr...

Désoler
petite faute lors de la retranscription...

Mathiei

Posté le 04 novembre 2005 - 12:12
je pense avoir trouvè

si je met pas un multitache d'au moins 20 centièmes dans mon thread principal, la fenêtre n'apparaît pas
Posté le 04 novembre 2005 - 14:51
Salut !

On 4-Nov-2005, "YORK" <guest@newsgroup.fr> wrote:

je pense avoir trouvè

si je met pas un multitache d'au moins 20 centièmes dans mon thread
principal, la fenêtre n'apparaît pas



Si je ne m'abuse, onne peut pas ouvrir de fenêtre dans un thread, la fenêtre
doit être ouverte avant le thread ( en inviible ou hors écran ) avant le
lancement du thread ...

Bien à toi !


--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477