Page 1 sur 1

Bug ou pas bug?

Publié : mar. 06/juil./2010 15:49
par Geo Trouvpatou
Salut à tous.

Bon entre temps j'ai trouvé la solution, mais le comportement est-il normal?
J'ai perdu plus d'une heure là-dessus :twisted: .

Je vous expose les faits :
Je vous met un code que j'ai réduit au maximum.

Regardez le 1er Frame3DGadget intitulé "Information de version" son cadre est doublé.

Par contre si on met en commentaire :
SetGadgetFont(#FRAME3D_InfoVersion, fontIdTrebuchet8)

Le Frame3DGadget est nickel

Ou si on remet le code d'origine et qu'à la place on met : EditorGadget(#EDITOR_MajDescription, 8, 8, 710, 300, #PB_Editor_ReadOnly) en commentaire, là aussi c'est nickel.

Alors je ne sais pas d'où le problème provient (Solution du problème dans le prochain code).
Voici le code foireux :

Code : Tout sélectionner

EnableExplicit
Define event.i, quit.i
;--------------------------------------------------------------------------------------------
;- Enumeration
;--------------------------------------------------------------------------------------------
Enumeration #PB_Compiler_EnumerationValue
      ; - Windows 
      #WINDOW_Maj
      
      ; - Gadgets
      #FRAME3D_InfoVersion
      #TEXT_InfoVersion_01
      #TEXT_InfoVersion_02
      #TEXT_InfoVersion_03
      #TEXT_InfoVersion_04
      #TEXT_InfoVersion_05
      
       #PANEL_Main
   
       #EDITOR_MajDescription  
EndEnumeration


;--------------------------------------------------------------------------------------------
;- Declare
;--------------------------------------------------------------------------------------------
Declare Open_Window_Maj()


;--------------------------------------------------------------------------------------------
;- Fonts
;--------------------------------------------------------------------------------------------
Global fontIdTrebuchet8.i, fontIdTrebuchet10.i
fontIdTrebuchet8  = LoadFont(1, "Trebuchet MS", 8)
fontIdTrebuchet10 = LoadFont(2, "Trebuchet MS", 10)


;--------------------------------------------------------------------------------------------
;- Main
;--------------------------------------------------------------------------------------------
Open_Window_Maj()


;--------------------------------------------------------------------------------------------
;- Loop
;--------------------------------------------------------------------------------------------
  Repeat
    event = WaitWindowEvent()

    If event = #PB_Event_CloseWindow  ; If the user has pressed on the close button
      quit = 1
    EndIf

  Until quit = 1


;--------------------------------------------------------------------------------------------
;- Procedures
;--------------------------------------------------------------------------------------------v
Procedure Open_Window_Maj()
      If OpenWindow(#WINDOW_Maj, 10, 177, 752, 500, "A.I-Pifou, Maj - Vérification/Update des mises à jour.",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered) ; 
            
            
            ; ma Frame3DGadget mis ici provoque une doublure du liseret de celle-ci.
            Frame3DGadget(#FRAME3D_InfoVersion, 8, 5, 354, 54, "Information de version") ; 
            TextGadget(#TEXT_InfoVersion_01, 22, 22, 98, 16, "Version Actuelle : ")
            TextGadget(#TEXT_InfoVersion_02, 122, 22, 55, 16, "2.0.1") 
            
            SetGadgetColor(#TEXT_InfoVersion_01, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            SetGadgetColor(#TEXT_InfoVersion_02, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            
            TextGadget(#TEXT_InfoVersion_03, 218, 22, 98, 16, "Dernière Version : ")
            TextGadget(#TEXT_InfoVersion_04, 318, 22, 55, 16, "2.1.4") 
            
            TextGadget(#TEXT_InfoVersion_05, 110, 40, 150, 16, "Votre version n'est pas à jour") 
            SetGadgetColor(#TEXT_InfoVersion_05, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            
            ;-
            PanelGadget(#PANEL_Main, 10, 100, 732, 380) 
            
            ; 1er onglet
            AddGadgetItem(#PANEL_Main, -1, "Vérifier les mises à jour")
            EditorGadget(#EDITOR_MajDescription, 8, 8, 710, 300, #PB_Editor_ReadOnly)

            CloseGadgetList()
            
            
            ; Après avoir clos la GadgetList je met ma Frame3DGadget qui se trouve au dessus
;             Frame3DGadget(#FRAME3D_InfoVersion, 8, 5, 354, 54, "Information de version") ; 
;             TextGadget(#TEXT_InfoVersion_01, 22, 22, 98, 16, "Version Actuelle : ")
;             TextGadget(#TEXT_InfoVersion_02, 122, 22, 55, 16, "2.0.1") 
;             
;             SetGadgetColor(#TEXT_InfoVersion_01, #PB_Gadget_FrontColor, RGB(255, 0, 0))
;             SetGadgetColor(#TEXT_InfoVersion_02, #PB_Gadget_FrontColor, RGB(255, 0, 0))
;             
;             TextGadget(#TEXT_InfoVersion_03, 218, 22, 98, 16, "Dernière Version : ")
;             TextGadget(#TEXT_InfoVersion_04, 318, 22, 55, 16, "2.1.4") 
;             
;             TextGadget(#TEXT_InfoVersion_05, 110, 40, 150, 16, "Votre version n'est pas à jour") 
;             SetGadgetColor(#TEXT_InfoVersion_05, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            
           
            
            ;/ Gadget Fonts
            SetGadgetFont(#FRAME3D_InfoVersion, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_01, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_02, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_03, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_04, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_05, fontIdTrebuchet8)
            
            
            ; 1er onglet
            SetGadgetFont(#PANEL_Main, fontIdTrebuchet8)
            SetGadgetFont(#EDITOR_MajDescription, fontIdTrebuchet8)
            
           
      EndIf
EndProcedure
Maintenant il s'avère qu'apparement le problème ne vient pas du Font.
J'ai mis le code de ma Frame3DGadget intitulé "Information de version" après le CloseGadgetList() de mon Panel et cela fonctionne très bien.

Code : Tout sélectionner

EnableExplicit
Define event.i, quit.i
;--------------------------------------------------------------------------------------------
;- Enumeration
;--------------------------------------------------------------------------------------------
Enumeration #PB_Compiler_EnumerationValue
      ; - Windows 
      #WINDOW_Maj
      
      ; - Gadgets
      #FRAME3D_InfoVersion
      #TEXT_InfoVersion_01
      #TEXT_InfoVersion_02
      #TEXT_InfoVersion_03
      #TEXT_InfoVersion_04
      #TEXT_InfoVersion_05
      
       #PANEL_Main
   
       #EDITOR_MajDescription  
EndEnumeration


;--------------------------------------------------------------------------------------------
;- Declare
;--------------------------------------------------------------------------------------------
Declare Open_Window_Maj()


;--------------------------------------------------------------------------------------------
;- Fonts
;--------------------------------------------------------------------------------------------
Global fontIdTrebuchet8.i, fontIdTrebuchet10.i
fontIdTrebuchet8  = LoadFont(1, "Trebuchet MS", 8)
fontIdTrebuchet10 = LoadFont(2, "Trebuchet MS", 10)


;--------------------------------------------------------------------------------------------
;- Main
;--------------------------------------------------------------------------------------------
Open_Window_Maj()


;--------------------------------------------------------------------------------------------
;- Loop
;--------------------------------------------------------------------------------------------
  Repeat
    event = WaitWindowEvent()

    If event = #PB_Event_CloseWindow  ; If the user has pressed on the close button
      quit = 1
    EndIf

  Until quit = 1


;--------------------------------------------------------------------------------------------
;- Procedures
;--------------------------------------------------------------------------------------------v
Procedure Open_Window_Maj()
      If OpenWindow(#WINDOW_Maj, 10, 177, 752, 500, "A.I-Pifou, Maj - Vérification/Update des mises à jour.",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered) ; 
            
            
            ; ma Frame3DGadget mis ici provoque une doublure du liseret de celle-ci.
;             Frame3DGadget(#FRAME3D_InfoVersion, 8, 5, 354, 54, "Information de version") ; 
;             TextGadget(#TEXT_InfoVersion_01, 22, 22, 98, 16, "Version Actuelle : ")
;             TextGadget(#TEXT_InfoVersion_02, 122, 22, 55, 16, "2.0.1") 
;             
;             SetGadgetColor(#TEXT_InfoVersion_01, #PB_Gadget_FrontColor, RGB(255, 0, 0))
;             SetGadgetColor(#TEXT_InfoVersion_02, #PB_Gadget_FrontColor, RGB(255, 0, 0))
;             
;             TextGadget(#TEXT_InfoVersion_03, 218, 22, 98, 16, "Dernière Version : ")
;             TextGadget(#TEXT_InfoVersion_04, 318, 22, 55, 16, "2.1.4") 
;             
;             TextGadget(#TEXT_InfoVersion_05, 110, 40, 150, 16, "Votre version n'est pas à jour") 
;             SetGadgetColor(#TEXT_InfoVersion_05, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            
            ;-
            PanelGadget(#PANEL_Main, 10, 100, 732, 380) 
            
            ; 1er onglet
            AddGadgetItem(#PANEL_Main, -1, "Vérifier les mises à jour")
            EditorGadget(#EDITOR_MajDescription, 8, 8, 710, 300, #PB_Editor_ReadOnly)

            CloseGadgetList()
            
            
            ; Après avoir clos la GadgetList je met ma Frame3DGadget qui se trouve au dessus
            Frame3DGadget(#FRAME3D_InfoVersion, 8, 5, 354, 54, "Information de version") ; 
            TextGadget(#TEXT_InfoVersion_01, 22, 22, 98, 16, "Version Actuelle : ")
            TextGadget(#TEXT_InfoVersion_02, 122, 22, 55, 16, "2.0.1") 
            
            SetGadgetColor(#TEXT_InfoVersion_01, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            SetGadgetColor(#TEXT_InfoVersion_02, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            
            TextGadget(#TEXT_InfoVersion_03, 218, 22, 98, 16, "Dernière Version : ")
            TextGadget(#TEXT_InfoVersion_04, 318, 22, 55, 16, "2.1.4") 
            
            TextGadget(#TEXT_InfoVersion_05, 110, 40, 150, 16, "Votre version n'est pas à jour") 
            SetGadgetColor(#TEXT_InfoVersion_05, #PB_Gadget_FrontColor, RGB(255, 0, 0))
            
           
            
            ;/ Gadget Fonts
            SetGadgetFont(#FRAME3D_InfoVersion, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_01, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_02, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_03, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_04, fontIdTrebuchet8)
            SetGadgetFont(#TEXT_InfoVersion_05, fontIdTrebuchet8)
            
            
            ; 1er onglet
            SetGadgetFont(#PANEL_Main, fontIdTrebuchet8)
            SetGadgetFont(#EDITOR_MajDescription, fontIdTrebuchet8)
            
           
      EndIf
EndProcedure
Est-ce normal ou non ?
Mystère!!!!

La question, c'est surtout qu'est-ce qui se passerait si on avait des :
TextGadget,
PanelGadget
re-TextGadget
re-PanelGadget
Etc....
Il faudrait mettre en priorité tous les PanelGadget et ensuite tous les TextGadget dans son code ?
Je ne trouve pas ça très pratique.

Salut.

Re: Bug ou pas bug?

Publié : mar. 06/juil./2010 16:09
par Geo Trouvpatou
Autre solution que je viens de trouver :
C'est mettre les Font juste après ma Frame3DGadget comme ceci.
Mais alors c'est peut-être un bug.

Code : Tout sélectionner

EnableExplicit
Define event.i, quit.i
;--------------------------------------------------------------------------------------------
;- Enumeration
;--------------------------------------------------------------------------------------------
Enumeration #PB_Compiler_EnumerationValue
			; - Windows 
			#WINDOW_Maj
			
			; - Gadgets
			#FRAME3D_InfoVersion
			#TEXT_InfoVersion_01
			#TEXT_InfoVersion_02
			#TEXT_InfoVersion_03
			#TEXT_InfoVersion_04
			#TEXT_InfoVersion_05
			
				#PANEL_Main
		
				#EDITOR_MajDescription  
EndEnumeration


;--------------------------------------------------------------------------------------------
;- Declare
;--------------------------------------------------------------------------------------------
Declare Open_Window_Maj()


;--------------------------------------------------------------------------------------------
;- Fonts
;--------------------------------------------------------------------------------------------
Global fontIdTrebuchet8.i, fontIdTrebuchet10.i
fontIdTrebuchet8  = LoadFont(1, "Trebuchet MS", 8)
fontIdTrebuchet10 = LoadFont(2, "Trebuchet MS", 10)


;--------------------------------------------------------------------------------------------
;- Main
;--------------------------------------------------------------------------------------------
Open_Window_Maj()


;--------------------------------------------------------------------------------------------
;- Loop
;--------------------------------------------------------------------------------------------
	Repeat
		event = WaitWindowEvent()

		If event = #PB_Event_CloseWindow  ; If the user has pressed on the close button
			quit = 1
		EndIf

	Until quit = 1


;--------------------------------------------------------------------------------------------
;- Procedures
;--------------------------------------------------------------------------------------------v
Procedure Open_Window_Maj()
			If OpenWindow(#WINDOW_Maj, 10, 177, 752, 500, "A.I-Pifou, Maj - Vérification/Update des mises à jour.",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered) ; 
						
						
						; ma Frame3DGadget mis ici provoque une doublure du liseret de celle-ci.
						Frame3DGadget(#FRAME3D_InfoVersion, 8, 5, 354, 54, "Information de version") ; 
						TextGadget(#TEXT_InfoVersion_01, 22, 22, 98, 16, "Version Actuelle : ")
						TextGadget(#TEXT_InfoVersion_02, 122, 22, 55, 16, "2.0.1") 
						
						SetGadgetColor(#TEXT_InfoVersion_01, #PB_Gadget_FrontColor, RGB(255, 0, 0))
						SetGadgetColor(#TEXT_InfoVersion_02, #PB_Gadget_FrontColor, RGB(255, 0, 0))
						
						TextGadget(#TEXT_InfoVersion_03, 218, 22, 98, 16, "Dernière Version : ")
						TextGadget(#TEXT_InfoVersion_04, 318, 22, 55, 16, "2.1.4") 
						
						TextGadget(#TEXT_InfoVersion_05, 110, 40, 150, 16, "Votre version n'est pas à jour") 
						SetGadgetColor(#TEXT_InfoVersion_05, #PB_Gadget_FrontColor, RGB(255, 0, 0))
						
						
						;/ Gadget Fonts
						SetGadgetFont(#FRAME3D_InfoVersion, fontIdTrebuchet8)
						SetGadgetFont(#TEXT_InfoVersion_01, fontIdTrebuchet8)
						SetGadgetFont(#TEXT_InfoVersion_02, fontIdTrebuchet8)
						SetGadgetFont(#TEXT_InfoVersion_03, fontIdTrebuchet8)
						SetGadgetFont(#TEXT_InfoVersion_04, fontIdTrebuchet8)
						SetGadgetFont(#TEXT_InfoVersion_05, fontIdTrebuchet8)
						
						
						;-
						PanelGadget(#PANEL_Main, 10, 100, 732, 380) 
						
						; 1er onglet
						AddGadgetItem(#PANEL_Main, -1, "Vérifier les mises à jour")
						EditorGadget(#EDITOR_MajDescription, 8, 8, 710, 300, #PB_Editor_ReadOnly)

						CloseGadgetList()
						
; 						;/ Gadget Fonts
; 						SetGadgetFont(#FRAME3D_InfoVersion, fontIdTrebuchet8)
; 						SetGadgetFont(#TEXT_InfoVersion_01, fontIdTrebuchet8)
; 						SetGadgetFont(#TEXT_InfoVersion_02, fontIdTrebuchet8)
; 						SetGadgetFont(#TEXT_InfoVersion_03, fontIdTrebuchet8)
; 						SetGadgetFont(#TEXT_InfoVersion_04, fontIdTrebuchet8)
; 						SetGadgetFont(#TEXT_InfoVersion_05, fontIdTrebuchet8)
						
						
						; 1er onglet
						SetGadgetFont(#PANEL_Main, fontIdTrebuchet8)
						SetGadgetFont(#EDITOR_MajDescription, fontIdTrebuchet8)
						
						
			EndIf
EndProcedure
Et là le code redevient plus logique.
J'ai le code de ma Frame3DGadget et je vois celle-ci, ensuite j'ai le code de mon Panel et je vois celui-ci.

Bug or not bug, only Fred has the answer.