Ca ne devrait pas le perturber.
Par contre, si la procédure envoie des messages à la fenêtre, même s'ils sont envoyés aux bons moments, ils vont dans la queue des messages. Et si celle-ci est encombrée...
Donne un code où ton problème survient qu'on voit ça.
Comment éviter de perturber un timer?
Ce bout de code tendrait à prouver que meme lorsque l'on fait un timer par procedure, non attaché à une fenetre, un événement est tout de meme envoyé à celle-ci.
Isn't it?
Isn't it?
Code : Tout sélectionner
Declare Timer()
Declare Sablier(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
OpenConsole()
Global Timer1
If InitMouse()=0 Or InitSprite()=0 Or InitKeyboard()=0 Or InitSound()=0
MessageRequester("Erreur","Impossible d'initialiser DirectX",0)
End
EndIf
If OpenWindow(0,0,0,800,600,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_TitleBar,"Le jarnac")=0
MessageRequester("Erreur","Impossible d'afficher l'écran principal",0)
End
EndIf
If OpenWindowedScreen(WindowID(),0,0,800,600,0,0,0)=0
MessageRequester("Erreur","Impossible d'afficher l'écran principal",0)
End
EndIf
Timer()
Repeat
Event=WindowEvent()
PrintN(Str(Event))
Delay(5)
Until Event=#PB_Event_CloseWindow
Procedure Timer()
Timer1=SetTimer_(#Null,#Null, 1000, @Sablier())
EndProcedure
Procedure Sablier(hwnd.l,uMsg.l,idEvent.l,dwTime.l)
Select uMsg
Case #WM_TIMER
Select idEvent
Case Timer1
; boucle vide
EndSelect
EndSelect
EndProcedure