Jump to content
Sign in to follow this  
caramen

[SOLVED]Group colors

Recommended Posts

caramen

I tryed to search in forum and in help file but maybe that is my problem at the end xD.

 

 

I whould like to modify the color of the group background only

 

I got a palliative sollution to make a label and set the backgroud color of the label but it gonna make me add a label again etc for the complet gui (i make my gui alone always , not with KODA) 

 

I whould like to know if there is a AI function to do that i have missing.

 

something like ..../

GuiCtrlSetGroupBackgroundColor , 0x000000

 

or maybe a solution that is more easy than making again all my label with background

 

Edited by caramen

Share this post


Link to post
Share on other sites
InunoTaishou

Here's an example using an array to hold the labels

#include <GUIConstants.au3>
#include <AutoItConstants.au3>

Global $hMain = GUICreate("", 420, 420)
Global $aLabels[10][10]
Global $iXOffset = 20
Global $iYOffset = 20

For $i = 0 To UBound($aLabels, $UBOUND_ROWS) - 1
    For $j = 0 To UBound($aLabels, $UBOUND_COLUMNS) - 1
        $aLabels[$i][$j] = GUICtrlCreateLabel("", $iXOffset, $iYOffset, 20, 20)
        $iXOffset += 40
    Next
    $iYOffset += 40
    $iXOffset = 20
Next

SetLabels($aLabels, 0xFF0000)

GUISetState(@SW_SHOW, $hMain)

While (True)
    Switch (GUIGetMsg())
        Case $GUI_EVENT_CLOSE
            Exit 0
    EndSwitch
WEnd

Func SetLabels(Const ByRef $aLabels, Const $iColor)
    For $i = 0 To UBound($aLabels, $UBOUND_ROWS) - 1
        For $j = 0 To UBound($aLabels, $UBOUND_COLUMNS) - 1
            GUICtrlSetBkColor($aLabels[$i][$j], $iColor)
        Next
    Next
EndFunc   ;==>SetLabels

Here's an example using a set of labels

#include <GUIConstants.au3>
#include <AutoItConstants.au3>

Global $hMain = GUICreate("", 420, 420)
Global $lblLabel1 = GUICtrlCreateLabel("", 20, 20, 20, 20)
Global $lblLabel2 = GUICtrlCreateLabel("", 60, 20, 20, 20)
Global $lblLabel3 = GUICtrlCreateLabel("", 100, 20, 20, 20)
Global $lblLabel4 = GUICtrlCreateLabel("", 140, 20, 20, 20)
Global $lblLabel5 = GUICtrlCreateLabel("", 180, 20, 20, 20)
Global $lblLabel6 = GUICtrlCreateLabel("", 220, 20, 20, 20)
Global $lblLabel7 = GUICtrlCreateLabel("", 260, 20, 20, 20)
Global $lblLabel8 = GUICtrlCreateLabel("", 300, 20, 20, 20)
Global $lblLabel9 = GUICtrlCreateLabel("", 340, 20, 20, 20)
Global $lblLabel10 = GUICtrlCreateLabel("", 380, 20, 20, 20)
Global $lblLabel11 = GUICtrlCreateLabel("", 20, 60, 20, 20)
Global $lblLabel12 = GUICtrlCreateLabel("", 60, 60, 20, 20)
Global $lblLabel13 = GUICtrlCreateLabel("", 100, 60, 20, 20)
Global $lblLabel14 = GUICtrlCreateLabel("", 140, 60, 20, 20)
Global $lblLabel15 = GUICtrlCreateLabel("", 180, 60, 20, 20)
Global $lblLabel16 = GUICtrlCreateLabel("", 220, 60, 20, 20)
Global $lblLabel17 = GUICtrlCreateLabel("", 260, 60, 20, 20)
Global $lblLabel18 = GUICtrlCreateLabel("", 300, 60, 20, 20)
Global $lblLabel19 = GUICtrlCreateLabel("", 340, 60, 20, 20)
Global $lblLabel20 = GUICtrlCreateLabel("", 380, 60, 20, 20)
Global $lblLabel21 = GUICtrlCreateLabel("", 20, 100, 20, 20)
Global $lblLabel22 = GUICtrlCreateLabel("", 60, 100, 20, 20)
Global $lblLabel23 = GUICtrlCreateLabel("", 100, 100, 20, 20)
Global $lblLabel24 = GUICtrlCreateLabel("", 140, 100, 20, 20)
Global $lblLabel25 = GUICtrlCreateLabel("", 180, 100, 20, 20)
Global $lblLabel26 = GUICtrlCreateLabel("", 220, 100, 20, 20)
Global $lblLabel27 = GUICtrlCreateLabel("", 260, 100, 20, 20)
Global $lblLabel28 = GUICtrlCreateLabel("", 300, 100, 20, 20)
Global $lblLabel29 = GUICtrlCreateLabel("", 340, 100, 20, 20)
Global $lblLabel30 = GUICtrlCreateLabel("", 380, 100, 20, 20)
Global $lblLabel31 = GUICtrlCreateLabel("", 20, 140, 20, 20)
Global $lblLabel32 = GUICtrlCreateLabel("", 60, 140, 20, 20)
Global $lblLabel33 = GUICtrlCreateLabel("", 100, 140, 20, 20)
Global $lblLabel34 = GUICtrlCreateLabel("", 140, 140, 20, 20)
Global $lblLabel35 = GUICtrlCreateLabel("", 180, 140, 20, 20)
Global $lblLabel36 = GUICtrlCreateLabel("", 220, 140, 20, 20)
Global $lblLabel37 = GUICtrlCreateLabel("", 260, 140, 20, 20)
Global $lblLabel38 = GUICtrlCreateLabel("", 300, 140, 20, 20)
Global $lblLabel39 = GUICtrlCreateLabel("", 340, 140, 20, 20)
Global $lblLabel40 = GUICtrlCreateLabel("", 380, 140, 20, 20)
Global $lblLabel41 = GUICtrlCreateLabel("", 20, 180, 20, 20)
Global $lblLabel42 = GUICtrlCreateLabel("", 60, 180, 20, 20)
Global $lblLabel43 = GUICtrlCreateLabel("", 100, 180, 20, 20)
Global $lblLabel44 = GUICtrlCreateLabel("", 140, 180, 20, 20)
Global $lblLabel45 = GUICtrlCreateLabel("", 180, 180, 20, 20)
Global $lblLabel46 = GUICtrlCreateLabel("", 220, 180, 20, 20)
Global $lblLabel47 = GUICtrlCreateLabel("", 260, 180, 20, 20)
Global $lblLabel48 = GUICtrlCreateLabel("", 300, 180, 20, 20)
Global $lblLabel49 = GUICtrlCreateLabel("", 340, 180, 20, 20)
Global $lblLabel50 = GUICtrlCreateLabel("", 380, 180, 20, 20)
Global $lblLabel51 = GUICtrlCreateLabel("", 20, 220, 20, 20)
Global $lblLabel52 = GUICtrlCreateLabel("", 60, 220, 20, 20)
Global $lblLabel53 = GUICtrlCreateLabel("", 100, 220, 20, 20)
Global $lblLabel54 = GUICtrlCreateLabel("", 140, 220, 20, 20)
Global $lblLabel55 = GUICtrlCreateLabel("", 180, 220, 20, 20)
Global $lblLabel56 = GUICtrlCreateLabel("", 220, 220, 20, 20)
Global $lblLabel57 = GUICtrlCreateLabel("", 260, 220, 20, 20)
Global $lblLabel58 = GUICtrlCreateLabel("", 300, 220, 20, 20)
Global $lblLabel59 = GUICtrlCreateLabel("", 340, 220, 20, 20)
Global $lblLabel60 = GUICtrlCreateLabel("", 380, 220, 20, 20)
Global $lblLabel61 = GUICtrlCreateLabel("", 20, 260, 20, 20)
Global $lblLabel62 = GUICtrlCreateLabel("", 60, 260, 20, 20)
Global $lblLabel63 = GUICtrlCreateLabel("", 100, 260, 20, 20)
Global $lblLabel64 = GUICtrlCreateLabel("", 140, 260, 20, 20)
Global $lblLabel65 = GUICtrlCreateLabel("", 180, 260, 20, 20)
Global $lblLabel66 = GUICtrlCreateLabel("", 220, 260, 20, 20)
Global $lblLabel67 = GUICtrlCreateLabel("", 260, 260, 20, 20)
Global $lblLabel68 = GUICtrlCreateLabel("", 300, 260, 20, 20)
Global $lblLabel69 = GUICtrlCreateLabel("", 340, 260, 20, 20)
Global $lblLabel70 = GUICtrlCreateLabel("", 380, 260, 20, 20)
Global $lblLabel71 = GUICtrlCreateLabel("", 20, 300, 20, 20)
Global $lblLabel72 = GUICtrlCreateLabel("", 60, 300, 20, 20)
Global $lblLabel73 = GUICtrlCreateLabel("", 100, 300, 20, 20)
Global $lblLabel74 = GUICtrlCreateLabel("", 140, 300, 20, 20)
Global $lblLabel75 = GUICtrlCreateLabel("", 180, 300, 20, 20)
Global $lblLabel76 = GUICtrlCreateLabel("", 220, 300, 20, 20)
Global $lblLabel77 = GUICtrlCreateLabel("", 260, 300, 20, 20)
Global $lblLabel78 = GUICtrlCreateLabel("", 300, 300, 20, 20)
Global $lblLabel79 = GUICtrlCreateLabel("", 340, 300, 20, 20)
Global $lblLabel80 = GUICtrlCreateLabel("", 380, 300, 20, 20)
Global $lblLabel81 = GUICtrlCreateLabel("", 20, 340, 20, 20)
Global $lblLabel82 = GUICtrlCreateLabel("", 60, 340, 20, 20)
Global $lblLabel83 = GUICtrlCreateLabel("", 100, 340, 20, 20)
Global $lblLabel84 = GUICtrlCreateLabel("", 140, 340, 20, 20)
Global $lblLabel85 = GUICtrlCreateLabel("", 180, 340, 20, 20)
Global $lblLabel86 = GUICtrlCreateLabel("", 220, 340, 20, 20)
Global $lblLabel87 = GUICtrlCreateLabel("", 260, 340, 20, 20)
Global $lblLabel88 = GUICtrlCreateLabel("", 300, 340, 20, 20)
Global $lblLabel89 = GUICtrlCreateLabel("", 340, 340, 20, 20)
Global $lblLabel90 = GUICtrlCreateLabel("", 380, 340, 20, 20)
Global $lblLabel91 = GUICtrlCreateLabel("", 20, 380, 20, 20)
Global $lblLabel92 = GUICtrlCreateLabel("", 60, 380, 20, 20)
Global $lblLabel93 = GUICtrlCreateLabel("", 100, 380, 20, 20)
Global $lblLabel94 = GUICtrlCreateLabel("", 140, 380, 20, 20)
Global $lblLabel95 = GUICtrlCreateLabel("", 180, 380, 20, 20)
Global $lblLabel96 = GUICtrlCreateLabel("", 220, 380, 20, 20)
Global $lblLabel97 = GUICtrlCreateLabel("", 260, 380, 20, 20)
Global $lblLabel98 = GUICtrlCreateLabel("", 300, 380, 20, 20)
Global $lblLabel99 = GUICtrlCreateLabel("", 340, 380, 20, 20)
Global $lblLabel100 = GUICtrlCreateLabel("", 380, 380, 20, 20)

For $i = $lblLabel1 To $lblLabel10
    GUICtrlSetBkColor($i, 0xFFFFFF)
Next

For $i = $lblLabel11 To $lblLabel20
    GUICtrlSetBkColor($i, 0)
Next

For $i = $lblLabel21 To $lblLabel30
    GUICtrlSetBkColor($i, 0xFF0000)
Next

For $i = $lblLabel31 To $lblLabel40
    GUICtrlSetBkColor($i, 0x00FF00)
Next

For $i = $lblLabel41 To $lblLabel50
    GUICtrlSetBkColor($i, 0x0000FF)
Next

For $i = $lblLabel51 To $lblLabel60
    GUICtrlSetBkColor($i, 0x678912)
Next

For $i = $lblLabel61 To $lblLabel70
    GUICtrlSetBkColor($i, 0x11F8CC)
Next

For $i = $lblLabel71 To $lblLabel80
    GUICtrlSetBkColor($i, 0x888888)
Next

For $i = $lblLabel81 To $lblLabel90
    GUICtrlSetBkColor($i, 0xF04444)
Next

For $i = $lblLabel91 To $lblLabel100
    GUICtrlSetBkColor($i, 0x444FFF)
Next

GUISetState(@SW_SHOW, $hMain)

While (True)
    Switch (GUIGetMsg())
        Case $GUI_EVENT_CLOSE
            Exit 0
    EndSwitch
WEnd

 

Share this post


Link to post
Share on other sites
caramen

Dear InunoTaishou

 

Sorry for my english.

This isexactly what i am using in my script without any advise that's funny.

But it s not what i am requesting.

 

I am gonna post some of my groups label so may you will understand better what i am asking.  and iknow i can solve the problem with a label font but i just whould like to know if there is a way to set the backgroud color of a

GUICtrlCreateGroup

And nothing else

 

Here is a part of my script (i assume you know everything about include etc so i wont post the total script) but i can post it without any restriction but i have to protect my company private datas so i prefer dont do it or i will have to correct all privacy code.

#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <Word.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <ColorConstantS.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <_IsUacAdmin.au3>
#include <AD.au3>

Global $GUI = GUICreate("Opticiens-Atol", 800, 600)

$Font1 = GUICtrlCreateLabel  ( "" , 5 , 5 , 185 , 130 )
   GUICtrlSetBkColor ( $Font1 , 0x4486FA );Bleu google

$Groupe1 = GUICtrlCreateGroup ( "Office1" , 5 , 5 , 190 , 135 ) ;Groupe OFFICE
      $Groupe2 = GUICtrlCreateGroup ( "Utilisateur2" , 200 , 5 , 200 , 195 ) ;Groupe Utilisateur
         $Groupe3 = GUICtrlCreateGroup ( "Accés réseau3" , 405 , 5 , 390 , 120 ) ;Groupe RESEAU
            $Groupe4 = GUICtrlCreateGroup ( "Lecture AD4" , 405 , 125 , 390 , 75 ) ;Groupe RESEAU

            GUISetState(@SW_SHOW, $GUI)

While (1)

   Sleep (2000)

WEnd

 

Share this post


Link to post
Share on other sites
InunoTaishou

Oh.. the group control, I thought it was a group of controls. Something like this maybe?

#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <Word.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <ColorConstantS.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>

Global $GUI = GUICreate("Opticiens-Atol", 800, 600)

$Font1 = GUICtrlCreateLabel("", 5, 5, 185, 130)


$Groupe1 = GUICtrlCreateGroup("Office1", 5, 5, 190, 135) ;Groupe OFFICE
$Groupe2 = GUICtrlCreateGroup("Utilisateur2", 200, 5, 200, 195) ;Groupe Utilisateur
$Groupe3 = GUICtrlCreateGroup("Accés réseau3", 405, 5, 390, 120) ;Groupe RESEAU
$Groupe4 = GUICtrlCreateGroup("Lecture AD4", 405, 125, 390, 75) ;Groupe RESEAU

GUICtrlSetGroupBkColor($Groupe1, 0x4486FA)

GUISetState(@SW_SHOW, $GUI)

While (1)
    Switch (GUIGetMsg())
        Case $GUI_EVENT_CLOSE
            Exit 0
    EndSwitch
WEnd

Func GUICtrlSetGroupBkColor(Const $iCtrl, Const $iColor)
    Local Static $iBorder = 4   ; Border of the group control, this is the grey line around the edges
    Local Static $iYOffset = 14 ; Y offset to account for the text in the group control
    Local $hWnd = IsHWnd($iCtrl) ? $iCtrl : GUICtrlGetHandle($iCtrl)    ; Handle used to get the control position
    Local $aCtrlArea = ControlGetPos(_WinAPI_GetParent($hWnd), "", $iCtrl)  ; Get the control position
    Local $lblReturn = GUICtrlCreateLabel("", $aCtrlArea[0] + $iBorder, $aCtrlArea[1] + $iYOffset, $aCtrlArea[2] - $iBorder * 2, $aCtrlArea[3] - $iYOffset - $iBorder)  ; Create a label that's used for the back color inside the group control
    GUICtrlSetColor($lblReturn, $iColor)
    GUICtrlSetBkColor($lblReturn, $iColor)
    GUICtrlSetState($lblReturn, $GUI_DISABLE)
    GUICtrlSetBkColor($iCtrl, $iColor)
    Return $lblReturn   ; Return the label, can be stored and used to update the color of this group later
EndFunc   ;==>GUICtrlSetGroupBkColor#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <Word.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <ColorConstantS.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>

Global $GUI = GUICreate("Opticiens-Atol", 800, 600)

$Font1 = GUICtrlCreateLabel("", 5, 5, 185, 130)


$Groupe1 = GUICtrlCreateGroup("Office1", 5, 5, 190, 135) ;Groupe OFFICE
$Groupe2 = GUICtrlCreateGroup("Utilisateur2", 200, 5, 200, 195) ;Groupe Utilisateur
$Groupe3 = GUICtrlCreateGroup("Accés réseau3", 405, 5, 390, 120) ;Groupe RESEAU
$Groupe4 = GUICtrlCreateGroup("Lecture AD4", 405, 125, 390, 75) ;Groupe RESEAU

GUICtrlSetGroupBkColor($Groupe1, 0x4486FA)

GUISetState(@SW_SHOW, $GUI)

While (1)
    Switch (GUIGetMsg())
        Case $GUI_EVENT_CLOSE
            Exit 0
    EndSwitch
WEnd

Func GUICtrlSetGroupBkColor(Const $iCtrl, Const $iColor)
    Local Static $iBorder = 4   ; Border of the group control, this is the grey line around the edges
    Local Static $iYOffset = 14 ; Y offset to account for the text in the group control
    Local $hWnd = IsHWnd($iCtrl) ? $iCtrl : GUICtrlGetHandle($iCtrl)    ; Handle used to get the control position
    Local $aCtrlArea = ControlGetPos(_WinAPI_GetParent($hWnd), "", $iCtrl)  ; Get the control position
    Local $lblReturn = GUICtrlCreateLabel("", $aCtrlArea[0] + $iBorder, $aCtrlArea[1] + $iYOffset, $aCtrlArea[2] - $iBorder * 2, $tCtrlArea[3] - $iYOffset - $iBorder)  ; Create a label that's used for the back color inside the group control
    GUICtrlSetColor($lblReturn, $iColor)
    GUICtrlSetBkColor($lblReturn, $iColor)
    GUICtrlSetState($lblReturn, $GUI_DISABLE)
    GUICtrlSetBkColor($iCtrl, $iColor)
    Return $lblReturn   ; Return the label, can be stored and used to update the color of this group later
EndFunc   ;==>GUICtrlSetGroupBkColor

You might get a more desirable result if you just created a square using some labels and using them as the border for your "group" and then you can create another label for the actual background of the group.

Edited by InunoTaishou
  • Like 2

Share this post


Link to post
Share on other sites
caramen

Yeah lol like that it s perfect/ wow...

But waw i thougth

GUICtrlSetGroupBkColor

gonna be enouth to do all that. Too much code for too low improvement about the gui colors./

 

The double label i much much more easyer. (if we do the label background FIRST and we dont change label after it s not buggy .)

I have to read your code and translate that in my head to see if i can reduce that i got only 4 group label but.... for my future code it s too much.

well you gift me a solution so. i am gonna edit as solved but i dont like that way. TY man.

Share this post


Link to post
Share on other sites
InunoTaishou

I edited the code and added comments, hopefully it helps.

  • Like 1

Share this post


Link to post
Share on other sites
caramen

you're one of the best ;) Thank 1000x man

Edited by caramen

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • Muzaiyan
      By Muzaiyan
      Salam, Hello, Hi
      Today i am showing you some new styles of progress bar
      i don't know if anyone posted a thing like this on thins forum
       
      _GUICtrlCreateProgress
      This UDF allows you to create new style progress bar
      Colors, Values can be changed by using native functions of autoit
      i created this script years ago while i was not on this forum
      now i think it should be shared on this forum
      check this out if anyone is interested
      any help is greatly appreciated
      NEW
      $PBSC_LINE_LEFT_TO_TIGHT changed to  $PBSC_LINE_LEFT_TO_RIGHT
      New Style Progressbar.rar
      old
      New Style Progressbar.rar
       
×