Page 1 sur 1
Programme simple, qui plante... quand je clic, normal ?
Publié : jeu. 22/juil./2004 23:49
par Slide
Code : Tout sélectionner
If 0=(InitKeyboard() And InitSprite() And InitMouse())
MessageRequester("Erreur","Vérifiez que DirectX7 ou plus est installé.",#PB_MessageRequester_Ok)
End
EndIf
If 0=OpenWindowedScreen(OpenWindow(0,0,0,800,600,#PB_Window_ScreenCentered,"test"),0,0,800,600,0,0,0)
MessageRequester("Erreur","Erreur de résolution de l'écran.",#PB_MessageRequester_Ok)
End
EndIf
Repeat
ExamineKeyboard()
ExamineMouse()
Until KeyboardPushed(#PB_Key_Escape)
Je sais bien que ce programme ne ressemble à rien, mais j'ai un petit probleme avec, si je clic comme un malade, genre plein plein plein de clic, ca plante, pourquoi ?
Merci
Publié : jeu. 22/juil./2004 23:58
par Chris
Pourquoi, je ne sais pas exactement.
Par contre, ce que j'ai constaté, c'est que si tu mets
dans la boucle, tu n'as plus ce problème.
Mets également un Delay(1) dans la boucle pour éviter de bouffer 100% de CPU.
Chris

Publié : ven. 23/juil./2004 0:10
par Slide
Merci pour ta solution
C'est un bug donc du compilateur ??
Publié : ven. 23/juil./2004 0:12
par Chris
Je ne sais pas.
Je pense que la fenêtre a besoin de cette commande pour gérer la boucle des évenements, même si elle reste vide. Il faudra demander ça à Fred
Chris

Publié : sam. 24/juil./2004 4:43
par filperj
Je pense aussi que c'est normal: à chaque fois que l'utilisateur touche à sa souris ou son clavier, le système traduit ça en un évènement qu'il place dans la file d'attente, pour la fenêtre qui est au premier plan.
Quand la file d'attente est trop longue, le système est pas content et accuse l'application de ne pas répondre: c'est pour ça qu'il faut faire au moins semblant de s'intéresser aux évènements(avec WindowEvent(), donc.)
Publié : sam. 24/juil./2004 15:32
par Flype
tout à fait exact ! on ne créé pas une fenêtre en l'ignorant, faut la bichonner...