Colorer un gadget Panel

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Colorer un gadget Panel

Message par pat »

Bonjour,

Je n'ai toujours pas réussi à pouvoir mettre de la couleur dans un gadget Panel.
Que ce soit avec des fonctions API qui pourtant marchent bien.
J'ai même essayé de dessiner dans un panel un rectangle en couleur mais cela non plus ne fonctionne pas.
Alors je commence à croire que cela est impossible.
Est-ce vraiment le cas ?
Pour ceux qui savent, merci pour leurs collaborations.
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Colorer un gadget Panel

Message par dayvid »

Que veut tu faire Pat, tu veut mettre le texte en couleur ?, c'est possible :P
est-ce que tu veut ?, si oui je me porte volontaire pour t'aider :P
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Colorer un gadget Panel

Message par Backup »

.................
Dernière modification par Backup le sam. 01/oct./2011 10:04, modifié 1 fois.
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Colorer un gadget Panel

Message par pat »

Bonjour,

Pour Dayvid :
Je veux mettre de la couleur dans un panel (ou une image) et mettre des objets également dans ce panel.

Pour Dobro :
Merci pour tes contributions, mais comme je suis dans un lieu public avec un accès Internet bridé, je suis obligé de taper ton programme chez moi, ce qui va me prendre du temps, et donc je ne sais pas ce que cela va donner, tout en te faisant confiance car je sais que tu es assez doué en programmation alors que je suis, hélas pour moi, plutôt médiocre, même si j'arrive à faire certaines choses.

Merci à vous deux pour vos réponses respectives et particulièrement à Dobro qui n'hésite pas à répondre et même à résoudre mes problèmes.
A ceux qui auraient voulu que Dobro ne fasse plus partie du forum, sachez que grâce à lui, et à d'autres aussi, j'apprends doucement et sans ces aides, point de progrès pour moi.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Colorer un gadget Panel

Message par Chris »

pat a écrit : A ceux qui auraient voulu que Dobro ne fasse plus partie du forum, sachez que grâce à lui, et à d'autres aussi, j'apprends doucement et sans ces aides, point de progrès pour moi.
Faut surtout pas lui dire ça, il va se prendre la grosse tête.

Un mec qui est capable de quitter Annecy pour venir s'enterrer au fin fond du trou du cul du monde, en Haute-Loire, c'est un mec qui est capable de tout.
Imagine quand même que la plus grande ville proche de chez lui, c'est Craponne sur Arzon!

Tout un programme! :mrgreen:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Colorer un gadget Panel

Message par Backup »

............
Dernière modification par Backup le sam. 01/oct./2011 10:04, modifié 1 fois.
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Colorer un gadget Panel

Message par pat »

Bonjour,

Oubliez SVP vos amabilités et revenons à Purebasic.

Pour Dobro :

La deuxième version que tu as fourni ne marche pas bien du tout.
Mettre un Imagegadet(4,xxx) et ensuite un DisableGadget(4,1) plante le système.
Identique pour l'image avec le numéro 7.
Même si tu as mis en commentaire les instructions qui auraient peut être dû se mettre dans le programme, l'instruction SetWindowTheme n'existe pas, ni implémenté dans les instructions API de Purebasic, ni même dans la SDK Documentation (que j'ai eu un mal fou à obtenir).
Quant au résultat final, pas d'image dans le panel.

La première version m'a bien donné une image dans le panel.
Comme tu le sais, l'instruction CreateGadgetList n'existe plus. Mais il suffit de supprimer l'instruction et la condition qui va avec.
Il faut savoir que si l'image n'est pas suffisamment grande pour le panel, le système duplique cet image pour remplir la surface du panel.
Ce qui est désagréable c'est que cet image s'étend du début du texte de l'onglet et non pas à partir de la surface de travail de l'onglet.
A savoir également que les instructions pour mettre de la couleur dans les objets (avec le callback pour l'appel) ne fonctionne pas pour les objets du panel (j'ai déjà essayé avec ce genre d'instructions et si cela fonctionne pour les objets dans une fenêtre sans panel, cela ne fonctionne pas à l'intérieur du panel). Cela peut parfaitement passer pour les objets de type Text... car Purebasic permet de colorier cet objet et cela fonctionne même dans un panel mais en ce qui concerne les deux instructions : Optiongadget et Checkboxgadget auquel Purebasic ne permet pas de colorier ces objets, alors il n'y a rien à faire à l'intérieur d'un panel mais uniquement dans une fenêtre sans panel.
Alors je me pose une nouvelle question : est-il possible de colorier les objets Optiongadget et Checkboxgadget dans un panel ?

Il est clair que tes deux programmes ont manqué un peu d'attention mais c'est déjà bien que tu ais bien voulu me répondre.

Sauras-tu me répondre à la nouvelle question que je pose ?
En tout cas, merci pour tes contributions et ta volonté de me venir en aide.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Colorer un gadget Panel

Message par Backup »

Tu sais , meme la Librairie Purecolor bloc sur les Panels ..

sur le Forum Anglais, peu de gens ont apporté une solution

a mon avis, c'est peut etre Faisable, mais pas évident, en tout cas, API obligatoire

ou alors on sera toujours dans l'a peut pres :)

fait une recherche sur le Fofo Anglais, tu verra , il n'y a pas beaucoup de solutions au portillon ;)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Colorer un gadget Panel

Message par falsam »

pat a écrit :Alors je me pose une nouvelle question : est-il possible de colorier les objets Optiongadget et Checkboxgadget dans un panel ?
Le code ci-dessous colorise les objets OptionGadget et CheckBoxgadget dans un panel en passant par un callback (Compatible Window uniquement). J'ai aussi utiliser une astuce pour colorier le panel mais forcement les onglets ne le sont pas. je pratique trop peu les API Windows.

compile avec et sans le support des thèmes XP pour voir la différence.

Code : Tout sélectionner

Enumeration
  #MainForm
  #Panel
  #Wrapper1
  #Wrapper2
  #Option
  #Check
  #AnotherCheck
EndEnumeration

Global YellowColor.i, GreenColor.i
YellowColor = CreateSolidBrush_($B2FCFD) 
GreenColor = CreateSolidBrush_($B8F8CE) 
Procedure WindowCallback(WindowID, Message, wParam, lParam) 
  Result = #PB_ProcessPureBasicEvents   
  
  Select Message        
      Case #WM_CTLCOLORSTATIC
        Select lparam
          Case GadgetID(#Option)
            SetBkMode_(wParam,#TRANSPARENT) 
            SetTextColor_(wParam, $0862F7) 
            Result = YellowColor
            
          Case GadgetID(#Check)
            SetBkMode_(wParam,#TRANSPARENT) 
            SetTextColor_(wParam, $0862F7)           
            Result = YellowColor           
            
          Case GadgetID(#AnotherCheck)
            SetBkMode_(wParam,#TRANSPARENT) 
            SetTextColor_(wParam, $0862F7)           
            Result = GreenColor      

        EndSelect                                  
    EndSelect 
  ProcedureReturn Result 
EndProcedure 

Procedure MainformShow()
  If OpenWindow(#Mainform, 422, 335, 400, 225, "Test", #PB_Window_SystemMenu)
    PanelGadget(#Panel, 10, 20, 250, 180)   
    
    AddGadgetItem(#Panel, -1, "Tab #1")
    TextGadget(#Wrapper1, 0,0,250,180,"")
    SetGadgetColor(#Wrapper1, #PB_Gadget_BackColor, $B2FCFD)

    OptionGadget(#Option, 35, 25, 230, 20, "Option Gadget")
    CheckBoxGadget(#Check, 35, 50, 230, 20, "Check Gadget")
    
    AddGadgetItem(#Panel, -1, "Tab #2")
    TextGadget(#Wrapper2, 0,0,250,180,"")
    SetGadgetColor(#Wrapper2, #PB_Gadget_BackColor, $B8F8CE)
    CheckBoxGadget(#AnotherCheck,20,20,200,20, "Another Check")
    
    CloseGadgetList()
  EndIf
  SetWindowCallback(@WindowCallback()) 
EndProcedure

MainFormShow()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget

    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Colorer un gadget Panel

Message par Backup »

Excellent, je garde :)
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Colorer un gadget Panel

Message par pat »

Merci Dobro, tu as répondu en fonction de ce que tu as pu.
Sublime, falsam, je vais me mettre aussitôt à l'oeuvre.
Un super merci pour toi et tes compétences semblent importantes.
Je pense que beaucoup de personnes apprécieront ton code.
:P
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Colorer un gadget Panel

Message par Ar-S »

Excellent falsam :P
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Colorer un gadget Panel

Message par dayvid »

Ouoi, excelent Falsam :o

super code :D , merci beaucoup :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre