Page 4 sur 4
Publié : ven. 17/déc./2004 18:05
par hardy
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.
Publié : ven. 17/déc./2004 19:07
par Backup
et j'ai laissé juste le Delay(1)
et là ca marche nickel....
j'avais humblement fait la remarque au debut du topic !!
voici ce que j'avais ecrit :
tu doit surement utiliser un "WaitWindowEvent() "
utilise un "WindowEvent()" suivi d'un delay(2) et tu aura un meilleurs
rendu , je pense ! Smile
Publié : dim. 19/déc./2004 12:35
par Torp
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?
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