Je ne sais pas trop comment expliquer cela alors je vais faire au mieux.
A la ligne 177 dans mon fichier CreateButtonColor, j'ai essayer d'énumérer ma Map
qui contient toutes les information sur mon bouton, et là, un bug incompréhensible apparait.
Un bug qui semble venir de mon code et non de PB a priori.
Si je commente le code de l'énumération de la Map, évidement aucun problème !
Le fait d'énumérer cette Map fait répété en boucle l'évènement "#PB_EventType_MouseEnter"
de mon Bouton. Chose complètement incompréhensible !
J'ai localisé que le problème venais avec le numéro du Bouton qui vaut 0 dans l'énumération, si 0 = problème.
Impossible de comprendre ni même savoir d’où viens le soucis, j'y comprends rien

En quoi le fait d'énumérer une Map fait répéter l'évènement en boucle ?
J'ai essayer de reproduire le problème en vain, ça viens bien de mon code !
Voici un court code qui montre bien que le soucis viens pas de PB mais de mon code:
Code : Tout sélectionner
;{ Enumeration
Enumeration 0
#Bouton1
#Bouton2
#Fenetre
EndEnumeration
;}
;{ Structure
Structure Caracteristiques
BoutonID.i
Texte.s
EndStructure
;}
Global NewMap ArrayButtonColor.Caracteristiques()
Procedure AutoEventBouton()
Select EventType()
Case #PB_EventType_MouseEnter
ForEach ArrayButtonColor()
Debug EventType()
Next
Case #PB_EventType_MouseLeave
Case #PB_EventType_MouseMove
Case #PB_EventType_LeftButtonDown
Case #PB_EventType_LeftButtonUp
EndSelect
EndProcedure
If OpenWindow(#Fenetre, 327, 177, 500, 300, "Fenêtre windows", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_TitleBar)
CanvasGadget(#Bouton1, 25, 25, 100, 30)
CanvasGadget(#Bouton2, 25, 60, 100, 30)
ArrayButtonColor.Caracteristiques(Str(#Bouton1))\BoutonID = #Bouton1
ArrayButtonColor.Caracteristiques(Str(#Bouton1))\Texte = "Mon Bouton"
BindGadgetEvent(#Bouton1, @AutoEventBouton())
ArrayButtonColor.Caracteristiques(Str(#Bouton2))\BoutonID = #Bouton2
ArrayButtonColor.Caracteristiques(Str(#Bouton2))\Texte = "Mon Bouton"
BindGadgetEvent(#Bouton2, @AutoEventBouton())
Repeat ; Départ des évènements de boucle.
Event = WaitWindowEvent(1) ; Cette ligne attend pendent (Minuteur) qu'un évènement soit recus par la Fenêtre.
EventWindow = EventWindow(); La Fenêtre oû l'évènement c'est produit.
EventGadget = EventGadget(); Pour savoir sur quel gadget c'est produis l'évènement.
EventMenu = EventMenu() ; Pour savoir sur quel menue c'est produis l'évènement.
EventType = EventType() ; Le type d'évènement qui c'est produis sur le gadget.
Select Event
Case #PB_Event_Gadget
Select EventGadget
Case 0
EndSelect
Case #PB_Event_Menu
Select EventMenu
Case 0
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow ; Fin des évènements de boucle.
EndIf
http://www.aht.li/3054670/CreateButtonColor_2_tmp.7z
Lancer l'exemple N°6, entrez et sortez du bouton 2, pas de soucis.
Entrez sur le bouton 1, bug !
Maintenant commenté la l'énumération et recommencer, plus de problème !