Programme simple, qui plante... quand je clic, normal ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Slide
Messages : 4
Inscription : jeu. 22/juil./2004 23:46
Contact :

Programme simple, qui plante... quand je clic, normal ?

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Pourquoi, je ne sais pas exactement.
Par contre, ce que j'ai constaté, c'est que si tu mets

Code : Tout sélectionner

While WindowEvent():Wend
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 :)
Slide
Messages : 4
Inscription : jeu. 22/juil./2004 23:46
Contact :

Message par Slide »

Merci pour ta solution ;)

C'est un bug donc du compilateur ??
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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 :)
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message 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.)
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

tout à fait exact ! on ne créé pas une fenêtre en l'ignorant, faut la bichonner...
Image
Répondre