Probleme avec les thread() et OpenWindows()
Publié : lun. 21/janv./2013 20:48
Bonjour,
J’ai un petit problème avec la nouvelle version de Purebasic et avec les « OpenWindows », Bon déjà voila l’erreur :
Mais en gros je créer un Thread à partir du « main » de la première fenêtre. Pour pouvoir avoir une fenêtre qui s’ouvre quelque seconde pour une info-toast sans bloquer l’exécution de la fenêtre principale.
Voila le principe (j’ai essayé de condenser mon problème) :
J’espère avoir été claire dans mon explication (ce que j’ai moi-même un doute).
Cordialement,
GallyHC
J’ai un petit problème avec la nouvelle version de Purebasic et avec les « OpenWindows », Bon déjà voila l’erreur :
Code : Tout sélectionner
[20 :13 :18] [ERREUR] ops_message.pbi (Ligne: 125)
[20 :13 :18] [ERREUR] OpenWindow() can only be called from the main thread.
[20 :13 :18] Exécution du programme terminée.
Voila le principe (j’ai essayé de condenser mon problème) :
Code : Tout sélectionner
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
Procedure ouverture(*value)
;
Define hWnd.i
Define event.i
hWnd = OpenWindow(#PB_Any, 0, 0, 200, 200, "test", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
If hWnd <> 0
StickyWindow(hWnd, 1)
UseGadgetList(WindowID(hWnd))
Repeat
;event = WaitWindowEvent(50)
;If GetActiveWindow() <> WindowID(hWnd)
; event = 0
;EndIf
Until event = #PB_Event_CloseWindow
EndIf
EndProcedure
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
Define hWnd.i
Define event.i
Define MajTread.i
hWnd = OpenWindow(#PB_Any, 0, 0, 200, 200, "test", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
If hWnd <> 0
ButtonGadget(0, 5, 5, 290, 28, "Test Thread")
Repeat
event = WaitWindowEvent(50)
If event = #PB_Event_Gadget And EventGadget() = 0
MajTread = CreateThread(@ouverture(), 0)
EndIf
Until event = #PB_Event_CloseWindow
EndIf
Cordialement,
GallyHC