Page 1 sur 1

Creation de gadgets dans des Thread

Publié : lun. 21/nov./2005 13:21
par lionel_om
Ya des bugs dans PureBasic lors de la création d'un gadget / Window / etc. dans un Thread. Si la feneêtre a été créée dans le processus principal, on peut pas lui ajouter des gadgets dans un Thread... :?

Exemple (non testé)

Code : Tout sélectionner

Procedure AddButton(hWnd.l)
  ButtonGadget(0, 10, 10, 80, 20, "Coucou")
Endprocedure

opt.l = je ne sais plus koi ...
hWnd = OpenWindow(0, 0, 0, 200, 200, opt, "Fenetre")
CreateGadgetList(WindowiD())

CreateThread(@AddButton(), hWnd)
Delay(2000)
Repeat

Until WaitWindowEvent() = #PB_Event_CloseWindow
La fenêtre doit être vide, ce qui ne devrait pas être le cas...

Publié : lun. 21/nov./2005 16:26
par Dr. Dri
c'est pas purebasic, c'est windows (vu dans je ne sais quel topic)
tu auras le même problème si tu essayes de récupérer les évennements d'une fenetre dans un thread différent de celui qui l'a créée

Dri

Publié : lun. 21/nov./2005 17:02
par Backup
mieux vaut utiliser les Threads pour faire executer
des routines, plutot que de les utilisers pour gerer le system

pour ma part je pense qu'elles ont ete crée pour ça en purebasic ...

par contre , je suis pas sur que ce ne soit pas faisable dans un autre language ,(C++ C#) a voir ... :)

Publié : mar. 22/nov./2005 10:16
par lionel_om
Oui j'ai vu ce topic, mais je ne le retrouvé pas...

J'utilisé un Thread car je construisé dynamiquement ma fenêtre(PanelGadget) où j'ajouté mes gadgets en fonctions de mon thread et comme j'utilisé également des ListIconGadget avec énormément d'items à ajouter, je voulais les ajouter depuis un Thread. Mais j'avais trouvé un système pour synchronizer mes Threads et créer les gadgets depuis le mainThread.

Merci pour vos réponses ... :D