Bug ou pas bug?
Publié : mar. 06/juil./2010 15:49
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
.
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 :
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.
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.
Bon entre temps j'ai trouvé la solution, mais le comportement est-il normal?
J'ai perdu plus d'une heure là-dessus

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
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
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.