SetGadgetColor() inactif dans FrameGadget()

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

SetGadgetColor() inactif dans FrameGadget()

Message par Jacobus »

Dans l'exemple ci-dessous la fonction de coloration des gadgets ne fonctionne pas lorsqu'ils sont dans un FrameGadget() et si ce dernier se trouve dans un PanelGadget() c'est encore pire car on peut voir les limites des gadgets. C'est moche. Y a t-il moyen de corriger cela ?

Code : Tout sélectionner

Enumeration
  #WIN_DOW
  #FRAME_WIN1
  #TEXT_1
  #STRING_1
  #PANEL
  #FRAME_WIN2
  #TEXT_2
  #STRING_2
EndEnumeration


If OpenWindow(#WIN_DOW, 100, 100, 600, 400, "Color in frame", #PB_Window_SystemMenu)
  WinWidth  = WindowWidth(#WIN_DOW,#PB_Window_InnerCoordinate)
  WinHeight = WindowHeight(#WIN_DOW,#PB_Window_InnerCoordinate)
  
  FrameGadget(#FRAME_WIN1, 5, 5, 250, WinHeight-10, "GADGETS EN COULEUR" ,#PB_Frame_Container)
    TextGadget(#TEXT_1,5,30,100,20,"Texte Gadget :") 
    SetGadgetColor(#TEXT_1, #PB_Gadget_BackColor, RGB(255, 255, 255))  
    SetGadgetColor(#TEXT_1, #PB_Gadget_FrontColor, RGB(210, 60, 66))
    
    StringGadget(#STRING_1,5,60,100,20,"String Gadget",#PB_String_ReadOnly)
    SetGadgetColor(#STRING_1, #PB_Gadget_BackColor, RGB(255, 255, 255))  
    SetGadgetColor(#STRING_1, #PB_Gadget_FrontColor, RGB(68, 201, 66))
  CloseGadgetList()
  
  PanelGadget(#PANEL,260, 5, WinWidth-265, WinHeight-10)
  AddGadgetItem(#PANEL,0,"Panel Gadget")
  PanelWidth = GetGadgetAttribute(#PANEL, #PB_Panel_ItemWidth)
  PanelHeight = GetGadgetAttribute(#PANEL, #PB_Panel_ItemHeight)
      FrameGadget(#FRAME_WIN2, 5, 5, PanelWidth-10, PanelHeight-10, "Joli frame" ,#PB_Frame_Container)
        TextGadget(#TEXT_2,5,30,100,20,"Texte Gadget :") 
        SetGadgetColor(#TEXT_2, #PB_Gadget_BackColor, RGB(255, 255, 255))  
        SetGadgetColor(#TEXT_2, #PB_Gadget_FrontColor, RGB(210, 60, 66))
        
        StringGadget(#STRING_2,5,60,100,20,"String Gadget",#PB_String_ReadOnly)
        SetGadgetColor(#STRING_2, #PB_Gadget_BackColor, RGB(255, 255, 255))  
        SetGadgetColor(#STRING_2, #PB_Gadget_FrontColor, RGB(68, 201, 66))
      CloseGadgetList()
  CloseGadgetList()
  
  Repeat  
    Select WaitWindowEvent()
        Case #PB_Event_CloseWindow      
          Select EventWindow()     
            Case #WIN_DOW 
              Quit = 1          
          EndSelect
    EndSelect 
  Until Quit = 1
End  
EndIf 
 
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
venom
Messages : 3136
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: SetGadgetColor() inactif dans FrameGadget()

Message par venom »

Tu s regarder dans les options du compilateur si le support des thèmes est activés ou pas ?







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: SetGadgetColor() inactif dans FrameGadget()

Message par Jacobus »

venom a écrit : mar. 17/sept./2024 14:50 Tu s regarder dans les options du compilateur si le support des thèmes est activés ou pas ?
Oui, les thèmes et le facteur DPI. Pourquoi, chez toi ça fonctionne ?
Sinon la solution de rechange est de prendre un ContainerGadget() qui supporte les modifs couleurs, mais c'est dommage de ne pouvoir le faire avec le FrameGadget() que Fred a reformaté en "Container" avec la version 6.12.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
venom
Messages : 3136
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: SetGadgetColor() inactif dans FrameGadget()

Message par venom »

Non je n'ai pas testé. C'était une supposition :wink:







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Mindphazer
Messages : 694
Inscription : mer. 24/août/2005 10:42

Re: SetGadgetColor() inactif dans FrameGadget()

Message par Mindphazer »

J'ai les mêmes symptômes sur Windows (aucun des gadgets n'affiche de texte en couleur)

Mais : sous MacOS, le même code affiche bien les gadgets en couleur...
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: SetGadgetColor() inactif dans FrameGadget()

Message par Jacobus »

Mindphazer a écrit : mer. 18/sept./2024 22:17 sous MacOS, le même code affiche bien les gadgets en couleur...
C'est donc la version 6.12 pour Windows qui clash. je pense que c'est le nouveau FrameGadget() qui déconne avec SetGadgetColor(). De plus, en fonction de l'ajout de l'option #container ou pas, de CloseGadgetList() ou pas.
j'ai testé FrameGadget() sans l'option #container et dans ce cas il ne faut pas mettre CloseGadgetList() sinon ça génère des erreurs. J'ai mis un moment à comprendre d'où venaient les erreurs...
Si tu décide de changer et d'ajouter l'option #container mais que tu oublies d'ajouter CloseGadgetList(), là aussi ça merdoie grave.
Donc, un coup avec CloseGadgetList() et un coup sans en fonction de ce que tu veux, en mode Container ou pas... Pas simple.
Il vaut mieux éviter FrameGadget() tant que le problème n'est pas corrigé.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre