Page 1 sur 1

RESOLU pb de validation avec la touche entrée sur TreeGadget

Publié : lun. 22/août/2011 20:44
par Malo
Bonjour

fonctionnement de ce code :

quand on clic sur une branche du TreeGadget "Petite Fille ..." ou "Arr Petite Fille..."
un StringGadget apparait pour saisir une quantité ainsi qu'un TextGadget et , et en validant avec Return,
la branche sélectionnée change de texte et de couleur et le TextGadget également.


Le problème est que cela ne fonctionne pas toujours correctement.Quand je fais plusieurs saisies
à suivre sur des branches différentes, Je suis obligé assez souvent d'appuyer plusieurs fois sur
la touche Entrée pour valider le fonctionnement.

J'ai constaté également que je suis également obligé de cliquer plusieurs fois sur la croix rouge
pour fermer la fenêtre.

Avez vous une idée sur ces dysfonctionnements?
Merci par avance pour vos réponses

Code : Tout sélectionner

;PB 4.51


Enumeration
	#fenet
	#Bord
	#Text
	#TextSaisie
	#Saisie
	#Valider
	#Supprimer
	#Save
	#Return
EndEnumeration

;Global NewList Article.s()

Global couleurs=RGB($0,$0,$FF)
Global couleurs2=RGB($FF,$0,$AD)
Global couleurs3=RGB($CC,$FF,$FF)
Global couleurs4=RGB($FF,$FF,$FF)
Global leTexte$=""
Global element

Procedure Fenetre_Principale()
    If OpenWindow(#fenet, 0, 0, 600, 600, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
        TreeGadget(#Bord, 10, 110, 550, 450 ,#PB_Tree_AlwaysShowSelection) 
        TextGadget(#Text, 10, 20,400, 90,leTexte$  )
        SetGadgetColor(#Text,  #PB_Gadget_FrontColor,Couleurs  )
        AddKeyboardShortcut(#fenet, #PB_Shortcut_Return, #Return);100
	
        AddGadgetItem (#Bord, -1, "Mére A",0,0)
        AddGadgetItem (#Bord, -1, "Fille A1",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille A1.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A1.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A1.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A1.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A1.5",0,2)
        AddGadgetItem (#Bord, -1, "Fille A2",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille A2.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A2.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A2.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A2.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A2.5",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille A2.6",0,2)
        AddGadgetItem (#Bord, -1, "Mére B",0,0)
        AddGadgetItem (#Bord, -1, "Fille B1",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille B1.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B1.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B1.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B1.4",0,2)
        AddGadgetItem (#Bord, -1, "Fille B2",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.5",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.6",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.7",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B2.8",0,2)
        AddGadgetItem (#Bord, -1, "Fille B3",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.5",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.6",0,2)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.1",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.2",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.3",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.4",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.5",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.6",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.7",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.8",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.9",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.10",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.11",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille B3.6.12",0,3)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.7",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.8",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.9",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.10",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.11",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.12",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.13",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.14",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.15",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.16",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.17",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.18",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille B3.19",0,2)
        AddGadgetItem (#Bord, -1, "Mére C",0,0)
        AddGadgetItem (#Bord, -1, "Fille C1",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille C1.1",0,2)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.1",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.2",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.3",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.4",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.5",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.6",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.7",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.8",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.9",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.10",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.11",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.12",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.13",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.14",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.15",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.16",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.17",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.18",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.19",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.20",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.21",0,3)
        AddGadgetItem (#Bord, -1, "Arr Petite Fille C1.1.22",0,3)
        AddGadgetItem (#Bord, -1, "Petite Fille C1.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C1.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C1.4",0,2)
        AddGadgetItem (#Bord, -1, "Fille C2",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.5",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.6",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.7",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C2.8",0,2)
        AddGadgetItem (#Bord, -1, "Fille C3",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille C3.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C3.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C3.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C3.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C3.5",0,2)
        AddGadgetItem (#Bord, -1, "Fille C4",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.5",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.6",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.7",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.8",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.9",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.10",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.11",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C4.12",0,2)
        AddGadgetItem (#Bord, -1, "Fille C5",0,1)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.1",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.2",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.3",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.4",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.5",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.6",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.7",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.8",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.9",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.10",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.11",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.12",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.13",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.14",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.15",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.16",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.17",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.18",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.19",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.20",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.21",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.22",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.23",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.24",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.25",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.26",0,2)
        AddGadgetItem (#Bord, -1, "Petite Fille C5.27",0,2)
        
        	
        ;nbItem=CountGadgetItems(#Bord)
        
    
    EndIf
EndProcedure

Procedure LesArticles()
    element=GetGadgetState(#Bord)
    leTexte$=  GetGadgetItemText(#Bord, element )
    If CreateRegularExpression(0, "\.[0-9]")
 	    If MatchRegularExpression(0, leTexte$)
 		    SetGadgetText(#Text,leTexte$)
			SetGadgetColor(#Text,  #PB_Gadget_FrontColor,Couleurs  )
			StringGadget(#Saisie,460,20,70,30,laSaisie$,#PB_String_Numeric   )
			TextGadget(#TextSaisie,420,20,40,30,"qt")
			SetActiveGadget(#Saisie)
			If LoadFont(1, "Arial", 14) 
			    SetGadgetFont(#Saisie, FontID(1))  
			    SetGadgetFont(#TextSaisie, FontID(1))  
            EndIf 

		Else
	    	FreeGadget(#Saisie)
			FreeGadget(#TextSaisie)
			If Len(leTexte$) >85
			    SetGadgetText(#Text,leTexte$)
			Else
				leTexte$=""
				SetGadgetText(#Text,leTexte$)
			EndIf
				     				
		EndIf
	EndIf 
EndProcedure


Procedure Valider_Saisie()
    remplace$="X_  "+leTexte$+"  Qt  "+GetGadgetText(#Saisie)
	SetGadgetItemText(#Bord,element,remplace$)
	SetGadgetItemColor(#Bord,  element, #PB_Gadget_FrontColor,couleurs2  )
	SetGadgetText(#Text,remplace$)
	SetGadgetColor(#Text, #PB_Gadget_FrontColor,couleurs2  )
  EndProcedure

Fenetre_Principale()

 ;****************************************************************************************	
Repeat 
evenement = WaitWindowEvent()
Select  evenement
        
    Case #PB_Event_Menu
 	    Select EventMenu()
 	 	    Case #Return;100
 	 		    Valider_Saisie()
 	 	EndSelect
 	 		
 	 				
 	Case #PB_Event_Gadget
     	Select EventGadget()
     		Case #Bord
     			LesArticles()
			EndSelect
	EndSelect
	
Until WaitWindowEvent() = #PB_Event_CloseWindow


Re: pb de validation avec la touche entrée sur TreeGadget

Publié : lun. 22/août/2011 21:37
par falsam
Remplace

Code : Tout sélectionner

Until WaitWindowEvent() = #PB_Event_CloseWindow
par

Code : Tout sélectionner

Until evenement=#PB_Event_CloseWindow

Re:RESOLU pb de validation avec la touche entrée sur TreeGad

Publié : lun. 22/août/2011 23:50
par Malo
Merci falsam , cela fonctionne beaucoup mieux maintenant

Re: pb de validation avec la touche entrée sur TreeGadget

Publié : mar. 23/août/2011 18:35
par graph100
La commande waitwindowevent() prend un évènement de la pile d’évènement (là ou il sont stockés) et le retourne en résultat.
Donc tu dois traiter chaque valeur retournée par cette commande (comme windowevent() d'ailleur) de manière à ne pas rater d'event !!

La solution la plus simple, et largement répandu est de stocker la valeur retournée par ces commandes une seule fois dans la boucle principale.
Un gros un tour de la boucle principale traite un évènement de la pile. A chaque fois que tu veux savoir ce qu'il se passe tu utilises la variable dans laquelle tu as stocké l'event courant.

aller bon courage,
en espérant avoir apporté une lumière ;)

Re: pb de validation avec la touche entrée sur TreeGadget

Publié : mer. 24/août/2011 23:54
par Malo
Merci graph100 pour tes conseils éclairés.
Il est vrai que pour tester le TreeGadget j'avais copié l'exemple de la doc, que j'avais remanier
pour mes besoins sans pour autant remettre en cause la fermeture de la fenêtre.