Couleur par defaut [Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Couleur par defaut [Résolu]

Message par Kwai chang caine »

Bonjour a tous

Je cherche depuis 1/2 heure et pas moyen de trouver la constante de couleur par defaut :?

Code : Tout sélectionner

SetGadgetColor(Label, #PB_Gadget_BackColor, #COLOR_XXXX)
SetGadgetColor(Label, #PB_Gadget_FrontColor, #COLOR_XXX)
J'ai trouvé le font par defaut

Code : Tout sélectionner

#PB_Font_Default
Mais pas la couleur

Merci de votre aide
Dernière modification par Kwai chang caine le mer. 18/mars/2009 10:51, modifié 1 fois.
zaphod
Messages : 135
Inscription : dim. 07/déc./2008 9:32

Message par zaphod »

Salut KCC

J'ai ça :
#COLOR_BACKGROUND = $1
et ça :
#COLOR_BTNFACE = $F



Z@ph0D//
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci ZAPHOD de ta reponse rapide 8)

Mais apparement #COLOR_BACKGROUND me donne du noir
Remarque ça m'etonne qu'a moitié sa valeur est de 1 donc proche de 0 :cry:
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Message par SpaceMan »

Salut KCK !
voici un outil qui pourrait t'aider...
http://www.purearea.net/pb/download/dev ... lorReq.zip
Un défaut qui empêche les hommes d’agir, c’est de ne pas sentir de quoi ils sont capables.
Jacques Bénigne Bossuet
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

zaphod a écrit :Salut KCC

J'ai ça :
#COLOR_BACKGROUND = $1
attention #COLOR_BACKGROUND renvoi la couleur de TON bureau (fond derriere l'image)

donc cela varie suivant la config de couleur de chacun !!

chez moi en ce moment par exemple
#COLOR_BACKGROUND =$001C7330


@KCC si tu utilisai Japbe, tu ne te poserai pas ce genre de question

un petit appuis sur ALT+Y fait venir le selecteur de couleurs system ;)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

attention #COLOR_BACKGROUND renvoi la couleur de TON bureau (fond derriere l'image)
donc cela varie suivant la config de couleur de chacun !!
chez moi en ce moment par exemple
#COLOR_BACKGROUND =$001C7330
D'accord voila pourquoi j'avais noir 8)

Car noir c'est noir et y'a plus d'espooooooiiiiir !!!!
Mais moi je cherche le.....gris c'est griiiiiiiis!!!! des messagesbox par defaut et je n'veux plus d'ennuuuuuis, oh, oh.
Ça vaut le cuuuuuu, de sauver notre amooooooour .....
@KCC si tu utilisai Japbe, tu ne te poserai pas ce genre de question
Gnagnagna gna gna......... gna :? :lol: :lol:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bon.......

J'ai trouvé ça en piquant la couleur de la scrollbar, puisqu'en général elle a la couleur des messagebox

Code : Tout sélectionner

GetSysColor_(#COLOR_SCROLLBAR)
ou ça avec les boutons (Enfin je pense)

Code : Tout sélectionner

GetSysColor_(#COLOR_BTNFACE)
Mais c'est de la bidouille.....moi j'aurais voulu la couleur des messagesbox pour etre sur :roll:
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

Tu as essayé -1 ?
Purebasic.chm a écrit :SetGadgetColor(#Gadget, ColorType, Color)

Description

Changes the color attribute specified by 'ColorType' of the given #Gadget. RGB() can be used to get a valid color value. To remove the custom color and go back to the default system color, set the 'Color' parameter to -1.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Kwai chang caine a écrit : Mais c'est de la bidouille.....moi j'aurais voulu la couleur des messagesbox pour etre sur :roll:

tiens je t'ai fait un petit outil rien que pour toi :D

tu pointe l'element du bureau dont tu veux connaitre la couleur
ça te l'affiche en hexa , un petit copier coller dans ton code et zou ! :D


ps : d'ailleurs cette outils marche pour n'importe quelle application sur le bureau !! :D



Code : Tout sélectionner


Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Declare GetColorUnderMouse() ; recupere la couleur sous la souris !!

Enumeration
    #Window
    #timer_1
    #Gadget
EndEnumeration


If OpenWindow(#Window, 100, 100,250,200,"lecteur de couleur pour KCC by Dobro", #PB_Window_SystemMenu)
    StickyWindow(#Window,1)
    Resultat = StringGadget(#Gadget, 40, 40, 100, 30, "") 
    Handle = WindowID(#Window) 
    SetTimer_(Handle, #timer_1, 10, @TimerProc()) ; envoie un evenement toutes les 10 millisecondes 
    ; *********** boucle principale ******************************************
    Repeat 
        Event=WindowEvent()  
        Delay(2)
        
        MessageRequester("toto","un petit message requester pour voir la couleur du fond", #PB_MessageRequester_Ok ) 
        Event=#PB_Event_CloseWindow
    Until Event=#PB_Event_CloseWindow
    ; **********************************************************************
EndIf 



; cette procedure contient les actions a effectuer par le timer
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
    Select uMsg
        Case #WM_TIMER
            Select idEvent
                Case  #timer_1 ; on va se servir du timer comme gachette de tir !!
                    Color.l = GetColorUnderMouse()  
                    SetGadgetText(#Gadget,Hex(Color.l))
                    SetClipboardText("$"+Hex(Color.l)) 
            EndSelect
    EndSelect
EndProcedure



Procedure GetColorUnderMouse()
    GetCursorPos_(@CursorPos.POINT )
    hdc = GetDC_(0)
    If hdc <> 0
        Color = GetPixel_(hdc,CursorPos\x,CursorPos\y)
        ReleaseDC_(0, hdc)
        ProcedureReturn Color
    EndIf
EndProcedure








Ps : je viens de lui ajouter le sticky pour avoir toujour la fenetre au dessus

et aussi il copie dans le presse papier la couleur

t'as plus qu'a faire Ctrl+V pour recuperer le résultat :D
zaphod
Messages : 135
Inscription : dim. 07/déc./2008 9:32

Message par zaphod »

Pour ceux qui, comme moi, n'utilisent pas japbe, j'ai pompé dans le source de japbe le sélecteur de couleurs systèmes et j'en ai fait une appli autonome.
Le code initial est de gnozal.
J'ai adapté en pb 4.30.

Code : Tout sélectionner

;/ jaPBe - gnozal (v3 for PB4.xx) http://freenet-homepage.de/gnozal
;/ Standalone app (pb 4.30) 17/03/2009 : zaphod - http://landzone.free.fr
;/ InsertSystemColors tool by gnozal

Structure SYSCOLORS 
  ColorConst.s 
  ColorNumber.l 
EndStructure 
Global Dim SysColor.SYSCOLORS(33) 
;
Enumeration
#Win_InsertSysColors
EndEnumeration
;
Enumeration
#InsertSysColors_ListIcon
#InsertSysColors_Button_Cancel
#InsertSysColors_Button_Hex
#InsertSysColors_Button_RGB
#InsertSysColors_Button_Constant
#InsertSysColors_Button_Help
EndEnumeration
;
Enumeration
#menu_main_InsertSystemColors_Esc
EndEnumeration

Procedure InsertSysColor_InitSysColor() 
  SysColor(0)\ColorConst = "#COLOR_3DDKSHADOW" : SysColor(0)\ColorNumber = 21 
  SysColor(1)\ColorConst = "#COLOR_3DFACE" : SysColor(1)\ColorNumber = 15 
  SysColor(2)\ColorConst = "#COLOR_3DHILIGHT" : SysColor(2)\ColorNumber = 20 
  SysColor(3)\ColorConst = "#COLOR_3DHIGHLIGHT" : SysColor(3)\ColorNumber = 20 
  SysColor(4)\ColorConst = "#COLOR_3DLIGHT" : SysColor(4)\ColorNumber = 22 
  SysColor(5)\ColorConst = "#COLOR_3DSHADOW" : SysColor(5)\ColorNumber = 16 
  SysColor(6)\ColorConst = "#COLOR_ACTIVEBORDER" : SysColor(6)\ColorNumber = 10 
  SysColor(7)\ColorConst = "#COLOR_ACTIVECAPTION" : SysColor(7)\ColorNumber = 2 
  SysColor(8)\ColorConst = "#COLOR_APPWORKSPACE" : SysColor(8)\ColorNumber = 12 
  SysColor(9)\ColorConst = "#COLOR_BACKGROUND" : SysColor(9)\ColorNumber = 1 
  SysColor(10)\ColorConst = "#COLOR_BTNFACE" : SysColor(10)\ColorNumber = 15 
  SysColor(11)\ColorConst = "#COLOR_BTNHIGHLIGHT" : SysColor(11)\ColorNumber = 20 
  SysColor(12)\ColorConst = "#COLOR_BTNHILIGHT" : SysColor(12)\ColorNumber = 20 
  SysColor(13)\ColorConst = "#COLOR_BTNSHADOW" : SysColor(13)\ColorNumber = 16 
  SysColor(14)\ColorConst = "#COLOR_BTNTEXT" : SysColor(14)\ColorNumber = 18 
  SysColor(15)\ColorConst = "#COLOR_CAPTIONTEXT" : SysColor(15)\ColorNumber = 9 
  SysColor(16)\ColorConst = "#COLOR_DESKTOP" : SysColor(16)\ColorNumber = 1 
  SysColor(17)\ColorConst = "#COLOR_GRADIENTACTIVECAPTION" : SysColor(17)\ColorNumber = 27 
  SysColor(18)\ColorConst = "#COLOR_GRADIENTINACTIVECAPTION" : SysColor(18)\ColorNumber = 28 
  SysColor(19)\ColorConst = "#COLOR_GRAYTEXT" : SysColor(19)\ColorNumber = 17 
  SysColor(20)\ColorConst = "#COLOR_HIGHLIGHT" : SysColor(20)\ColorNumber = 13 
  SysColor(21)\ColorConst = "#COLOR_HIGHLIGHTTEXT" : SysColor(21)\ColorNumber = 14 
  SysColor(22)\ColorConst = "#COLOR_HOTLIGHT" : SysColor(22)\ColorNumber = 26 
  SysColor(23)\ColorConst = "#COLOR_INACTIVEBORDER" : SysColor(23)\ColorNumber = 11 
  SysColor(24)\ColorConst = "#COLOR_INACTIVECAPTION" : SysColor(24)\ColorNumber = 3 
  SysColor(25)\ColorConst = "#COLOR_INACTIVECAPTIONTEXT" : SysColor(25)\ColorNumber = 19 
  SysColor(26)\ColorConst = "#COLOR_INFOBK" : SysColor(26)\ColorNumber = 24 
  SysColor(27)\ColorConst = "#COLOR_INFOTEXT" : SysColor(27)\ColorNumber = 23 
  SysColor(28)\ColorConst = "#COLOR_MENU" : SysColor(28)\ColorNumber = 4 
  SysColor(29)\ColorConst = "#COLOR_MENUTEXT" : SysColor(29)\ColorNumber = 7 
  SysColor(30)\ColorConst = "#COLOR_SCROLLBAR" : SysColor(30)\ColorNumber = 0 
  SysColor(31)\ColorConst = "#COLOR_WINDOW" : SysColor(31)\ColorNumber = 5 
  SysColor(32)\ColorConst = "#COLOR_WINDOWFRAME" : SysColor(32)\ColorNumber = 6 
  SysColor(33)\ColorConst = "#COLOR_WINDOWTEXT" : SysColor(33)\ColorNumber = 8 
EndProcedure 

Procedure InsertSysColors_Open()
  Protected i.l, SysColor.l, ColorRGB.s, ColorHEX.s
  ;
    InsertSysColor_InitSysColor()     
  ;
  If OpenWindow(#Win_InsertSysColors, 406, 497, 600, 291,"Insérer une couleur système",   #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
      Handle_InserSysColors_ListIcon = ListIconGadget(#InsertSysColors_ListIcon, 0, 0, 600, 266, "Constante", 215, #PB_ListIcon_FullRowSelect | #LVS_NOSORTHEADER | #PB_ListIcon_GridLines)
      AddGadgetColumn(#InsertSysColors_ListIcon, 1, "GetSysColor_(#)", 204)
      AddGadgetColumn(#InsertSysColors_ListIcon, 2, "Hex", 80)
      AddGadgetColumn(#InsertSysColors_ListIcon, 3, "RGB", 80)
      ButtonGadget(#InsertSysColors_Button_Cancel, 480, 270, 120, 20, "Cancel")
      ButtonGadget(#InsertSysColors_Button_Hex, 1, 270, 120, 20, "Copier Hexa")
      ButtonGadget(#InsertSysColors_Button_RGB, 130, 270, 120, 20, "Copier RGB")
      ButtonGadget(#InsertSysColors_Button_Constant, 260, 270, 120, 20, "Copier constante")
      ButtonGadget(#InsertSysColors_Button_Help, 390, 270, 20, 20, "?")
      If FileSize(PureBasicPath$ + "help\win32.hlp") < 1
        DisableGadget(#InsertSysColors_Button_Help, #True)
      EndIf
      For i = 0 To 33
        SysColor = GetSysColor_(SysColor(i)\ColorNumber)
        ColorHEX = "$" + RSet(Hex(SysColor), 8, "0")
        ColorRGB = "(" + Str(Red(SysColor))+","+Str(Green(SysColor))+","+Str(Blue(SysColor)) + ")"
        AddGadgetItem(#InsertSysColors_ListIcon, i, SysColor(i)\ColorConst + Chr(10) + Chr(10) + ColorHEX + Chr(10) + ColorRGB)
        SetGadgetItemColor(#InsertSysColors_ListIcon,i,#PB_Gadget_BackColor ,syscolor,1)
      Next
      EnableWindow_(SendMessage_(GadgetID(#InsertSysColors_ListIcon), #LVM_GETHEADER, 0, 0), #False)
      AddKeyboardShortcut(#Win_InsertSysColors, #PB_Shortcut_Escape, #menu_main_InsertSystemColors_Esc) 
  EndIf
EndProcedure

Procedure Event_InsertSysColor(Event)
  Protected WinAPIHelp.s, StringToPaste.s, SelectedLine.l
  If Event = #PB_Event_Gadget
    GadgetID = EventGadget()
    If GadgetID = #InsertSysColors_Button_Hex
      If EventType() = #PB_EventType_LeftClick
        SelectedLine = GetGadgetState(#InsertSysColors_ListIcon)
        If SelectedLine > -1
          StringToPaste = GetGadgetItemText(#InsertSysColors_ListIcon, SelectedLine, 2)
          SetClipboardText(StringToPaste)
        EndIf
      EndIf
    ElseIf GadgetID = #InsertSysColors_Button_RGB
      If EventType() = #PB_EventType_LeftClick
        SelectedLine = GetGadgetState(#InsertSysColors_ListIcon)
        If SelectedLine > -1
          StringToPaste = "RGB" + GetGadgetItemText(#InsertSysColors_ListIcon, SelectedLine, 3)
          SetClipboardText(StringToPaste)
        EndIf
      EndIf
    ElseIf GadgetID = #InsertSysColors_Button_Constant
      If EventType() = #PB_EventType_LeftClick
        SelectedLine = GetGadgetState(#InsertSysColors_ListIcon)
        If SelectedLine > -1
          StringToPaste = GetGadgetItemText(#InsertSysColors_ListIcon, SelectedLine, 0)
          SetClipboardText(StringToPaste)
        EndIf
      EndIf
    ElseIf GadgetID = #InsertSysColors_Button_Help
      WinAPIHelp = PureBasicPath$ + "help\win32.hlp"
      WinHelp_(WindowID(#Win_InsertSysColors), @WinAPIHelp, #HELP_KEY, @"GetSysColor")
    EndIf
  EndIf
EndProcedure

;
InsertSysColors_Open()
;
Repeat
  Event = WaitWindowEvent()
  
  Event_InsertSysColor(Event)
  
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      
      If eventgadget = #InsertSysColors_Button_Cancel
      CloseWindow(#Win_InsertSysColors)
      Break
      EndIf
      
      EventType = EventType()
    ; ////////////////////////
    Case #PB_Event_Menu
    If EventMenu() = #menu_main_InsertSystemColors_Esc
      CloseWindow(#Win_InsertSysColors)
      Break
    EndIf
    
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Win_InsertSysColors
        CloseWindow(#Win_InsertSysColors)
        Break
      EndIf
  EndSelect
ForEver
Les copies se font dans le presse papier.

Z@ph0d//
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

@zaphod : ce n'est pas tres adroit de ta part ! :?

tu propose un code, qui n'est pas de toi, hors de son contexte !!

je supose que tu n'as pas demandé la permission de faire ceci !

meme si le code est ouvert et accessible , cela ne signifie pas que tu peux faire ce que tu veux avec !!
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

@Dobro

Je ne suis pas d'accord avec toi pour le coup. Il propose un code tiré d'un logiciel, modifié par ses soins pour des soucis de compatibilité et en plus il cite le code d'origine (et il le laisse apparaître dans le code source!)

Fais gaffe Dobro où je t'appellerai hadopi à l'avenir :p Faut pas tomber dans la psychose non plus. T'as gnozal et jaPBe qui apparaissent clairement.

Dri ;)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Dr. Dri a écrit : Fais gaffe Dobro où je t'appellerai hadopi à l'avenir :p
note que si j'etais hadopi comme tu le dit, j'aurai effacé le code, et bloqué le topic !! ;)

la je dit juste ce que je pense, j'ai toutefois envoyé un message privé a gnozal pour connaitre son point de vue ! :)

si ça ne gene pas l'auteur , ça ne me gene pas non plus :)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Alors la les amis j'suis sur mon séant 8O
Merci beaucoup les amis. 8)

@Gnozal
Je vais essayer le -1 et je tiendrait au courant

@Dobro
Merci beaucoup de ton petit utilitaire, que je vais me garder (si tu le permet bien sur) et que je vais mettre dans ma trousse a outils personnel 8)
Je viens de l'essayer et il sort tout de suite 8O
Peut etre que ces lignes ne devraient pas etre dans la boucle d'evenement ??

Code : Tout sélectionner

MessageRequester("toto","un petit message requester pour voir la couleur du fond", #PB_MessageRequester_Ok ) 
        Event=#PB_Event_CloseWindow 
@Zaphod
Merci beaucoup de ce cadeau et d'avoir bravé les lois sans le savoir, en te transformant en "hacker masqué" 8)
Je ne peut rien dire car c'est un cadeau pour moi....donc je serais mal placé pour causer.
Mais c'est vrai que c'est difficile ces histoires de codes source.

A partir de quand c'est le sien, si on modifie 10%, 20% c'est encore le sien ???, a partir de quel pourcentage :roll:
Puis apres on change les variables, les nom de procedures, pour qu'elle conviennent et collent mieux a son giciel.
Y reste plus qu'un fantome du code precedent...a qui il est ??

Puis y'a toutes les licenses differentes.....je sais qu'il doit y avoir des pages de reglement qui explique ça....
Mais la est le probleme...y'a "des pages" ou tout le monde clic (a tort je l'accorde) j'accepte sans lire :oops:

C'est vrai que c'est compliqué et que on peut s'y perdre en toute bonne volonté et voulant bien faire :?

@Dobro
Tu es le cerbere de la porte, et tu as bien fait de le dire, mais tu vois sans ton intervention j'aurais meme pas vu le mal.
On a trop souvent le tort de penser, moi le premier, qu'un code source si on peut le copier.....on peut le coller :D

@Dri
J'suis de ton avis....mais entre ce que je pense et la loi ....
En tout cas je vois que comme avant tu dis rien, mais tu a toujours un oeil :D 8)
PS: T'a perdu ta petite tasse, peut etre avec purestorage qui a fermé :cry:

Encore merci à tous de vous intérésser à mon probleme
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

@zaphod : bon je vois que tu avais demandé a Gnozal la permission :)

alors mettons que j'ai rien dit !! :?

lorsqu'il s'agit de code diffusé sur le forum, il n'y a pas de probleme a les utiliser , puisqu'il sont a la portée de tout le monde

mais lorsqu'il s'agit de code qui sont joint a une archive en dehors du forum
c'est mieux d'etre sur, que l'auteur ne voie pas d'inconvenance a son exploitation sur le forum !!

je part du principe que si l'auteur d'un code, n'a pas diffusé ce code sur le forum, c'est qu'il ne le souhaite pas ..
meme s'il donne les sources dans une archive ..

bref le principe de précaution , relatif a son droit d'auteur


j'ai donc réagis par defaut , ne sachant pas que Zaphod avait en fait prévenue Gnozal

notez , que je n'ai aucunement "moderé" , je l'aurai éventuellement fait
si Gnozal me l'avait demandé !!

je ne suis pas le censureur fou , loin de là , seulement je me préocupe
ici, des interets de chacun sans heurts ..


apres tout , cela aurai pu tres bien ne pas plaire a Gnozal !

c'etait mon role de participant a ce forum de donner mon avis ! :)



@Kcc :
Kwai chang caine a écrit :Alors la les amis j'suis sur mon séant 8O
Merci beaucoup les amis. 8)

@Gnozal
Je vais essayer le -1 et je tiendrait au courant

@Dobro
Merci beaucoup de ton petit utilitaire, que je vais me garder (si tu le permet bien sur) et que je vais mettre dans ma trousse a outils personnel 8)
Je viens de l'essayer et il sort tout de suite 8O
Peut etre que ces lignes ne devraient pas etre dans la boucle d'evenement ??

Code : Tout sélectionner

MessageRequester("toto","un petit message requester pour voir la couleur du fond", #PB_MessageRequester_Ok ) 
        Event=#PB_Event_CloseWindow 
oui mes bouts de code posé sur le forum (souvent empreint de code pompé ailleurs ) , sont libre, comme tout les codes mis sur le forum !!
il sont publique ..... donc ... ;)


par contre chez moi mon code fonctionne parfaitement ....
j'ai inclue le messagerequester pour que tu puisse lire la couleur du fond

mais bien sur , faut le virer ...

le fait que mon code tourne parfaitement chez moi , et pas chez toi m'ammene une reflexion


plus le purebasic avance dans ses version, moins il est compatible avec les differents ordinateur et systemes !!

ce qui me fait penser, que le purebasic, n'est pas un langage tres fiable !!

en effet, comment programmer un truc, en se disant, il ne marchera peut etre pas chez les autres !! ??
Répondre