Page 1 sur 2

[RESOLU] Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 14:41
par Shadow
Chalut :)

J'ai un soucis de scintillement quand je déplace le splitter... pourquoi ?
J'utilise un panel perso car l'originale scintillement légèrement quand on passe sur l'un de ses bouton et autre chose...

J'aimerais bien aussi qu'il est un focus sur le bouton de mon panel perso ou je clique, une idée ? :)

Code : Tout sélectionner

;{ Enumeration

Enumeration
  
  #FenetreEditeurExpression
  #ContainerFenetreEditeurExpression
  #ContainerCommandesVariablesEditeurExpression
  #BoutonAfficherTreeCommandesEditeurExpression
  #BoutonAfficherTreeVariablesEditeurExpression
  #SplitterFenetreEditeurExpression
  #TreeCommandesEditeurExpression
  #TreeVariablesEditeurExpression
  
  #EditeurExpression
  
EndEnumeration

;}

; Prcocedure permettant d'activer ou de desactiver le theme XP.
Procedure SetActiveXP(Gadget.l, Value.b)
  If Value=#True
    SetWindowTheme_(GadgetID(Gadget), @" ", @" ")
  Else
    SetWindowTheme_(GadgetID(Gadget), 0, 0)
  EndIf
EndProcedure

Procedure OuvrirFenetreEditeurExpression()
  
  OpenWindow(#FenetreEditeurExpression, 0, 0, 600, 400, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  WindowBounds(#FenetreEditeurExpression, 500, 400, #PB_Ignore, #PB_Ignore)
  
  ContainerGadget(#ContainerFenetreEditeurExpression, 0, 0, 600, 400, #PB_Container_Flat)
  
  ContainerGadget(#ContainerCommandesVariablesEditeurExpression, 0, 0, 0, 0, #PB_Container_Flat)
  
  ButtonGadget(#BoutonAfficherTreeCommandesEditeurExpression, 2, 2, 60, 22, "Fonction")
  ButtonGadget(#BoutonAfficherTreeVariablesEditeurExpression, 61, 2, 65, 22, "Variables")
  
  SetWindowLong_(GadgetID(#BoutonAfficherTreeCommandesEditeurExpression), #GWL_STYLE, #BS_FLAT | GetWindowLong_(GadgetID(#BoutonAfficherTreeCommandesEditeurExpression), #GWL_STYLE))
  SetWindowLong_(GadgetID(#BoutonAfficherTreeVariablesEditeurExpression), #GWL_STYLE, #BS_FLAT | GetWindowLong_(GadgetID(#BoutonAfficherTreeCommandesEditeurExpression), #GWL_STYLE))
  
  SetActiveXP(#BoutonAfficherTreeCommandesEditeurExpression, #True)
  SetActiveXP(#BoutonAfficherTreeVariablesEditeurExpression, #True)
  
  TreeGadget(#TreeCommandesEditeurExpression, 0, 0, 0, 0, #PB_Tree_AlwaysShowSelection)
  
  AddGadgetItem(#TreeCommandesEditeurExpression, -1, "F1")
  AddGadgetItem(#TreeCommandesEditeurExpression, -1, "F2")
  AddGadgetItem(#TreeCommandesEditeurExpression, -1, "F3")
  
  TreeGadget(#TreeVariablesEditeurExpression, 0, 0, 0, 0, #PB_Tree_AlwaysShowSelection)
  
  AddGadgetItem(#TreeVariablesEditeurExpression, -1, "V1")
  AddGadgetItem(#TreeVariablesEditeurExpression, -1, "V2")
  AddGadgetItem(#TreeVariablesEditeurExpression, -1, "V3")
  
  HideGadget(#TreeVariablesEditeurExpression, #True)
  
  CloseGadgetList()
  
  EditorGadget(#EditeurExpression, 0, 0, 0, 0)
  SplitterGadget(#SplitterFenetreEditeurExpression, 2, 2, 594, 347, #ContainerCommandesVariablesEditeurExpression, #EditeurExpression, #PB_Splitter_Vertical | #PB_Splitter_Separator)
  
  CloseGadgetList()
  
  SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_FirstMinimumSize, 200)
  SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_SecondMinimumSize, WindowWidth(#FenetreEditeurExpression) - 300)
  
  SetGadgetState(#SplitterFenetreEditeurExpression, 0)
  
  ResizeGadget(#TreeCommandesEditeurExpression, 2, 23, GadgetWidth(#ContainerCommandesVariablesEditeurExpression) - 6, GadgetHeight(#ContainerCommandesVariablesEditeurExpression) - 27)
  ResizeGadget(#TreeVariablesEditeurExpression, 2, 23, GadgetWidth(#ContainerCommandesVariablesEditeurExpression) - 6, GadgetHeight(#ContainerCommandesVariablesEditeurExpression) - 27)
  
  Repeat
    
    Select WaitWindowEvent(1)
        
      Case #PB_Event_SizeWindow
        
        SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_SecondMinimumSize, WindowWidth(#FenetreEditeurExpression) - 300)
        
        ResizeGadget(#ContainerFenetreEditeurExpression, 0, 0, WindowWidth(#FenetreEditeurExpression), WindowHeight(#FenetreEditeurExpression))
        ResizeGadget(#SplitterFenetreEditeurExpression, 2, 2, WindowWidth(#FenetreEditeurExpression) - 6, WindowHeight(#FenetreEditeurExpression) - 53)
        ResizeGadget(#TreeCommandesEditeurExpression, 2, 23, GadgetWidth(#ContainerCommandesVariablesEditeurExpression) - 6, GadgetHeight(#ContainerCommandesVariablesEditeurExpression) - 27)
        ResizeGadget(#TreeVariablesEditeurExpression, 2, 23, GadgetWidth(#ContainerCommandesVariablesEditeurExpression) - 6, GadgetHeight(#ContainerCommandesVariablesEditeurExpression) - 27)
        
      Case #PB_Event_CloseWindow
        CloseWindow(#FenetreEditeurExpression)
        Break
        
      Case #PB_Event_Menu
        Select EventMenu()
        EndSelect
        
      Case #PB_Event_Gadget
        Select EventGadget()
            
          Case #BoutonAfficherTreeCommandesEditeurExpression
            HideGadget(#TreeCommandesEditeurExpression, #False)
            HideGadget(#TreeVariablesEditeurExpression, #True)
            
          Case #BoutonAfficherTreeVariablesEditeurExpression
            HideGadget(#TreeCommandesEditeurExpression, #True)
            HideGadget(#TreeVariablesEditeurExpression, #False)
            
          Case #SplitterFenetreEditeurExpression
            
            SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_SecondMinimumSize, WindowWidth(#FenetreEditeurExpression) - 300)
            
            ResizeGadget(#SplitterFenetreEditeurExpression, 2, 2, WindowWidth(#FenetreEditeurExpression) - 6, WindowHeight(#FenetreEditeurExpression) - 53)
            ResizeGadget(#TreeCommandesEditeurExpression, 2, 23, GadgetWidth(#ContainerCommandesVariablesEditeurExpression) - 6, GadgetHeight(#ContainerCommandesVariablesEditeurExpression) - 27)
            ResizeGadget(#TreeVariablesEditeurExpression, 2, 23, GadgetWidth(#ContainerCommandesVariablesEditeurExpression) - 6, GadgetHeight(#ContainerCommandesVariablesEditeurExpression) - 27)
            
        EndSelect
        
    EndSelect
    
  ForEver
  
EndProcedure

OuvrirFenetreEditeurExpression()

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 21:18
par falsam
Pourquoi simuler un panelgadget avec des boutons et deux containers imbriqués ?

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 22:17
par Shadow
Que me propose tu et comment faire ?

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 22:20
par falsam
Shadow a écrit :Que me propose tu et comment faire ?
Utilises un panelgadget et crées ton spliter entre le panel et l’éditeur.

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 22:29
par Shadow
Tu n'as donc pas lue...

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 22:37
par falsam
Shadow a écrit :Tu n'as donc pas lue...
Bien sur que si. Je t'en prie continue avec ton panel perso scintillant :mrgreen:

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 22:42
par Shadow
Pour ceux qui lise entre les lignes:
J'utilise un panel perso car l'originale scintillement légèrement quand on passe sur l'un de ses bouton et autre chose...
Voici comment j'ai fais:

Code : Tout sélectionner

EnableExplicit

;{ Enumeration

Enumeration
  
  #FenetreEditeurExpression
  #ContainerFenetreEditeurExpression
  #ContainerCommandesVariablesEditeurExpression
  #BoutonAfficherTreeCommandesEditeurExpression
  #BoutonAfficherTreeVariablesEditeurExpression
  #SplitterFenetreEditeurExpression
  #TreeCommandesEditeurExpression
  #TreeVariablesEditeurExpression
  
  #EditeurExpression
  
EndEnumeration

;}

; Prcocedure permettant d'activer ou de desactiver le theme XP.
Procedure SetActiveXP(Gadget.l, Value.b)
  If Value=#True
    SetWindowTheme_(GadgetID(Gadget), @" ", @" ")
  Else
    SetWindowTheme_(GadgetID(Gadget), 0, 0)
  EndIf
EndProcedure

Procedure OuvrirFenetreEditeurExpression()
  
  Define OngletTreeAfficher.i = 1
  
  OpenWindow(#FenetreEditeurExpression, 0, 0, 600, 400, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  WindowBounds(#FenetreEditeurExpression, 500, 400, #PB_Ignore, #PB_Ignore)
  
  ContainerGadget(#ContainerFenetreEditeurExpression, 0, 0, 600, 400, #PB_Container_Flat)
  
  ButtonGadget(#BoutonAfficherTreeCommandesEditeurExpression, 2, 2, 60, 22, "Fonction")
  ButtonGadget(#BoutonAfficherTreeVariablesEditeurExpression, 61, 2, 65, 22, "Variables")
  
  SetWindowLong_(GadgetID(#BoutonAfficherTreeCommandesEditeurExpression), #GWL_STYLE, #BS_FLAT | GetWindowLong_(GadgetID(#BoutonAfficherTreeCommandesEditeurExpression), #GWL_STYLE))
  SetWindowLong_(GadgetID(#BoutonAfficherTreeVariablesEditeurExpression), #GWL_STYLE, #BS_FLAT | GetWindowLong_(GadgetID(#BoutonAfficherTreeCommandesEditeurExpression), #GWL_STYLE))
  
  SetActiveXP(#BoutonAfficherTreeCommandesEditeurExpression, #True)
  SetActiveXP(#BoutonAfficherTreeVariablesEditeurExpression, #True)
  
  TreeGadget(#TreeCommandesEditeurExpression, 0, 0, 0, 0, #PB_Tree_AlwaysShowSelection)
  
  AddGadgetItem(#TreeCommandesEditeurExpression, -1, "F1")
  AddGadgetItem(#TreeCommandesEditeurExpression, -1, "F2")
  AddGadgetItem(#TreeCommandesEditeurExpression, -1, "F3")
  
  TreeGadget(#TreeVariablesEditeurExpression, 0, 0, 0, 0, #PB_Tree_AlwaysShowSelection)
  
  AddGadgetItem(#TreeVariablesEditeurExpression, -1, "V1")
  AddGadgetItem(#TreeVariablesEditeurExpression, -1, "V2")
  AddGadgetItem(#TreeVariablesEditeurExpression, -1, "V3")
  
  HideGadget(#TreeVariablesEditeurExpression, #True)
  
  EditorGadget(#EditeurExpression, 0, 0, 0, 0)
  SplitterGadget(#SplitterFenetreEditeurExpression, 2, 23, 594, 347, #TreeCommandesEditeurExpression, #EditeurExpression, #PB_Splitter_Vertical | #PB_Splitter_Separator)
  
  CloseGadgetList()
  
  SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_FirstMinimumSize, 200)
  SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_SecondMinimumSize, WindowWidth(#FenetreEditeurExpression) - 300)
  
  SetGadgetState(#SplitterFenetreEditeurExpression, 0)
  
  Repeat
    
    Select WaitWindowEvent(1)
        
      Case #PB_Event_SizeWindow
        
        SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_SecondMinimumSize, WindowWidth(#FenetreEditeurExpression) - 300)
        
        ResizeGadget(#ContainerFenetreEditeurExpression, 0, 0, WindowWidth(#FenetreEditeurExpression), WindowHeight(#FenetreEditeurExpression))
        ResizeGadget(#SplitterFenetreEditeurExpression, 2, 2, WindowWidth(#FenetreEditeurExpression) - 6, WindowHeight(#FenetreEditeurExpression) - 53)
        
      Case #PB_Event_CloseWindow
        CloseWindow(#FenetreEditeurExpression)
        Break
        
      Case #PB_Event_Menu
        Select EventMenu()
        EndSelect
        
      Case #PB_Event_Gadget
        
        Select EventGadget()
            
          Case #BoutonAfficherTreeCommandesEditeurExpression
            
            If OngletTreeAfficher.i <> 1
              
              OngletTreeAfficher.i = 1
              
              HideGadget(#TreeCommandesEditeurExpression, #False)
              HideGadget(#TreeVariablesEditeurExpression, #True)
              SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_FirstGadget, #TreeCommandesEditeurExpression)
              
            EndIf
            
          Case #BoutonAfficherTreeVariablesEditeurExpression
            
            If OngletTreeAfficher.i <> 2
              
              OngletTreeAfficher.i = 2
              
              HideGadget(#TreeCommandesEditeurExpression, #True)
              HideGadget(#TreeVariablesEditeurExpression, #False)
              SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_FirstGadget, #TreeVariablesEditeurExpression)
            EndIf
            
          Case #SplitterFenetreEditeurExpression
            
            SetGadgetAttribute(#SplitterFenetreEditeurExpression, #PB_Splitter_SecondMinimumSize, WindowWidth(#FenetreEditeurExpression) - 300)
            ResizeGadget(#SplitterFenetreEditeurExpression, 2, 23, WindowWidth(#FenetreEditeurExpression) - 6, WindowHeight(#FenetreEditeurExpression) - 53)

        EndSelect
        
    EndSelect
    
  ForEver
  
EndProcedure

OuvrirFenetreEditeurExpression()

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 22:54
par venom
Voici ce que veux dire Shadow

Code : Tout sélectionner

  If OpenWindow(0, 0, 0, 800, 600, "SplitterGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    #Bouton1    = 0 
    #Bouton2    = 1
    #Separateur = 2
    
    PanelGadget(#Bouton1, 0, 0, 0, 0) ; Inutile de préciser la taille ou les coordonnées
     AddGadgetItem(#Bouton1, -1, "Onglet 1", 0)
    CloseGadgetList()
     
    EditorGadget(#Bouton2, 0, 0, 0, 0) ; car elles seront déterminées automatiquement
    SplitterGadget(#Separateur, 5, 5, 790, 590, #Bouton1, #Bouton2, #PB_Splitter_Vertical)

    Repeat 
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
Quand on déplace le splitter le panel scintille :wink:






@++

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 23:06
par Shadow
Salut Venom,

Pas chez moi non :)
Quand je passe ma souris sur les bouton du panel, ceux ci clignote et j'aime pas, ça fait pas jolie je trouve.

Merci.

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 23:10
par venom
clignote ?

Tu parle de la surbrillance quand tu survol avec ton curseur ?







@++

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 23:20
par falsam
Ben voila ça me rassure :mrgreen: Ha ha ha ha ha

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 23:33
par venom
Si c'est ça désactive les thème dans les options du compilateur :wink:






@++

Re: Soucis scintillement gadgets et autres

Publié : dim. 05/mars/2017 23:38
par Shadow
Oui quand tu survole au passage d'un bouton d'un panel, le passage d'un bouton
à l’autre fait scintillé légèrement celui sur le quel tu te rend.

C'est pas méchant bien sur mais j'aime pas voila pourquoi :)
Et désactive les thème dans les options du compilateur, non sans façon :)

Merci.

Re: Soucis scintillement gadgets et autres

Publié : lun. 06/mars/2017 0:02
par falsam
@Vernom : Si tu prends le premier code de Shadow, c'est l'ensemble de son panel maison qui scintille bien plus que le panel natif de PureBasic.

Re: Soucis scintillement gadgets et autres

Publié : lun. 06/mars/2017 0:12
par Ar-S
Dans ton code ICI en 5.60 x64 je n'ai aucun scintillement.