Bevor ihr mich steinigt - natürlich weiß ich, dass es Farbtabellen, Farbmixer, Wizards etc. en masse gibt, hab ja selbst einige erstellt.
Warum habe ich nun trotzdem was Neues gemacht? Ich werde älter, die Augen schwächer und da wollte ich die Farben auf großen Flächen sehen und auch gern eine gängige Auswahl auf einen Blick.
Ich habe die Farben etwas gruppiert.
Das dient dazu, beim Gestalten von Programmen schnell die passenden Farben für Gui und/oder Controls zu finden.
Mit Mausklick links wird der Hexwert (z.B. 0xE0FFFF) und mit Mausklick rechts die Zuweisung (z.B. $LightCyan = 0xE0FFFF) in die Zwischenablage kopiert. Anschließend wird das Fenster geschlossen.
EDIT 2022-07-25:
- Umgestellt auf Msg-Events für Maus-Up
- Fensterhintergrund ausgeblendet (kann deaktiviert werden durch Auskommentieren der Zeile #204)
;-- TIME_STAMP 2022-07-25 10:13:35 v 0.1
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIHObj.au3>
#include <WindowsConstants.au3>
Global $aColors[][2] = [ _
["Maroon",0x800000], _
["DarkRed",0x8B0000], _
["Brown",0xA52A2A], _
["FireBrick",0xB22222], _
["Crimson",0xDC143C], _
["IndianRed",0xCD5C5C], _
["Red",0xFF0000], _
["OrangeRed",0xFF4500], _
["Tomato",0xFF6347], _
["Coral",0xFF7F50], _
["LightCoral",0xF08080], _
["Salmon",0xFA8072], _
["DarkSalmon",0xE9967A], _
["LightSalmon",0xFFA07A], _
["DarkOrange",0xFF8C00], _
["Orange",0xFFA500], _
["DarkGoldenrod",0xB8860B], _
["Goldenrod",0xDAA520], _
["Gold",0xFFD700], _
["Yellow",0xFFFF00], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
["SaddleBrown",0x8B4513], _ ; new block
["Sienna",0xA0522D], _
["Chocolate",0xD2691E], _
["Peru",0xCD853F], _
["SandyBrown",0xF4A460], _
["RosyBrown",0xBC8F8F], _
["Tan",0xD2B48C], _
["BurlyWood",0xDEB887], _
["Wheat",0xF5DEB3], _
["Moccasin",0xFFE4B5], _
["PeachPuff",0xFFDAB9], _
["NavajoWhite",0xFFDEAD], _
["Bisque",0xFFE4C4], _
["BlanchedAlmond",0xFFEBCD], _
["PapayaWhip",0xFFEFD5], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
["DarkGreen",0x006400], _ ; new block
["Green",0x008000], _
["ForestGreen",0x228B22], _
["SeaGreen",0x2E8B57], _
["MediumSeaGreen",0x3CB371], _
["MediumAquamarine",0x66CDAA], _
["LimeGreen",0x32CD32], _
["Lime",0x00FF00], _
["Chartreuse",0x7FFF00], _
["LawnGreen",0x7CFC00], _
["GreenYellow",0xADFF2F], _
["MediumSpringGreen",0x00FA9A], _
["SpringGreen",0x00FF7F], _
["LightGreen",0x90EE90], _
["PaleGreen",0x98FB98], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
["Olive",0x808000], _
["DarkOliveGreen",0x556B2F], _ ; new block
["OliveDrab",0x6B8E23], _
["YellowGreen",0x9ACD32], _
["DarkSeaGreen",0x8FBC8F], _
["Teal",0x008080], _
["DarkCyan",0x008B8B], _
["LightSeaGreen",0x20B2AA], _
["DarkTurquoise",0x00CED1], _
["MediumTurquoise",0x48D1CC], _
["Turquoise",0x40E0D0], _
["Aquamarine",0x7FFFD4], _
["Aqua",0x00FFFF], _
["Cyan",0x00FFFF], _
["PaleTurquoise",0xAFEEEE], _
["LightCyan",0xE0FFFF], _
["Azure",0xF0FFFF], _
["AliceBlue",0xF0F8FF], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
["DarkKhaki",0xBDB76B], _ ; new block
["Khaki",0xF0E68C], _
["PaleGoldenrod",0xEEE8AA], _
["LemonChiffon",0xFFFACD], _
["LightGoldenrodYellow",0xFAFAD2], _
["Cornsilk",0xFFF8DC], _
["LightYellow",0xFFFFE0], _
["Beige",0xF5F5DC], _
["Ivory",0xFFFFF0], _
["Honeydew",0xF0FFF0], _
["MintCream",0xF5FFFA], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
["MidnightBlue",0x191970], _ ; new block
["Navy",0x000080], _
["DarkBlue",0x00008B], _
["MediumBlue",0x0000CD], _
["Blue",0x0000FF], _
["RoyalBlue",0x4169E1], _
["DodgerBlue",0x1E90FF], _
["DeepSkyBlue",0x00BFFF], _
["CornflowerBlue",0x6495ED], _
["SkyBlue",0x87CEEB], _
["LightSkyBlue",0x87CEFA], _
["LightSteelBlue",0xB0C4DE], _
["DarkSlateBlue",0x483D8B], _
["SlateBlue",0x6A5ACD], _
["MediumSlateBlue",0x7B68EE], _
["SteelBlue",0x4682B4], _
["CadetBlue",0x5F9EA0], _
["PowderBlue",0xB0E0E6], _
["LightBlue",0xADD8E6], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
['',0xF0F0F0], _
["Indigo",0x4B0082], _ ; new block
["BlueViolet",0x8A2BE2], _
["MediumPurple",0x9370DB], _
["DarkViolet",0x9400D3], _
["DarkOrchid",0x9932CC], _
["MediumOrchid",0xBA55D3], _
["Orchid",0xDA70D6], _
["Purple",0x800080], _
["DarkMagenta",0x8B008B], _
["MediumVioletRed",0xC71585], _
["PaleVioletRed",0xDB7093], _
["DeepPink",0xFF1493], _
["HotPink",0xFF69B4], _
["Fuchsia",0xFF00FF], _
["Magenta",0xFF00FF], _
["Violet",0xEE82EE], _
["Plum",0xDDA0DD], _
["Thistle",0xD8BFD8], _
["Lavender",0xE6E6FA], _
["Pink",0xFFC0CB], _
["LightPink",0xFFB6C1], _
["MistyRose",0xFFE4E1], _
["LavenderBlush",0xFFF0F5], _
["Black",0x000000], _ ; new block
["DarkSlateGray",0x2F4F4F], _
["SlateGray",0x708090], _
["LightSlateGray",0x778899], _
["DimGray",0x696969], _
["Gray",0x808080], _
["DarkGray",0xA9A9A9], _
["Silver",0xC0C0C0], _
["LightGray",0xD3D3D3], _
["Gainsboro",0xDCDCDC], _
["AntiqueWhite",0xFAEBD7], _
["Linen",0xFAF0E6], _
["OldLace",0xFDF5E6], _
["FloralWhite",0xFFFAF0], _
["Snow",0xFFFAFA], _
["GhostWhite",0xF8F8FF], _
["WhiteSmoke",0xF5F5F5], _
["White",0xFFFFFF] _
]
Global $aLabel[UBound($aColors)], $w = 185, $x = -$w, $y = -30
Global $hGui = GUICreate('', 1489, 715, @DesktopWidth-1489, 0, 0x80000000)
GUISetFont(12, 400, Default, 'Consolas')
For $i = 0 To UBound($aColors) -1
$x = Mod($i, 23) = 0 ? ($x+$w+1) : $x
$y = Mod($i, 23) = 0 ? 1 : ($y+30+1)
$aLabel[$i] = GUICtrlCreateLabel($aColors[$i][0], $x, $y, $w, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
_GuiCtrl_SetColorContrast(-1, $aColors[$i][1])
Next
_GuiHole($hGui) ; Auskommentieren für sichtbaren Fensterhintergrund
GUISetState()
Global $gMsg, $IDclick, $aColorClick, $sClip
While True
$gMsg = GUIGetMsg()
Switch $gMsg
Case -3
Exit
Case $GUI_EVENT_PRIMARYUP, $GUI_EVENT_SECONDARYUP
$IDclick = GUIGetCursorInfo($hGui)[4]
$aColorClick = _GetColor($IDclick)
If $aColorClick[0] <> '' Then
$sClip = '$' & $aColorClick[0] & ' = 0x' & Hex($aColorClick[1],6)
If $gMsg = $GUI_EVENT_PRIMARYUP Then $sClip = '0x' & Hex($aColorClick[1],6)
Exit ClipPut($sClip)
EndIf
EndSwitch
WEnd
Func _GetColor($_ID)
Local $index = $_ID - $aLabel[0]
Local $aRet[] = [$aColors[$index][0],$aColors[$index][1]]
Return $aRet
EndFunc
; #FUNCTION# =======================================================================================
; Name ..........: _GuiCtrl_SetColorContrast
; Description ...: Sets the background color for a control and depending on its brightness the
; ...............: appropriate contrast color for the text.
; Parameter(s)...: $_ID The control ID
; ...............: $_BkCol The background color
; ....[optional].: $_ColOnDark The text color if BG is dark (Default: -1, almost white)
; ....[optional].: $_colOnBright The text color if BG is bright (Default: -1, very deep blue)
; Return values .: Success 1
; ...............: Failure 0
; Author ........: BugFix
; ==================================================================================================
Func _GuiCtrl_SetColorContrast($_ID, $_BkCol, $_ColOnDark=-1, $_colOnBright=-1)
$_ColOnDark = $_ColOnDark = -1 ? 0xFAFAFA : $_ColOnDark
$_colOnBright = $_colOnBright = -1 ? 0x000088 : $_colOnBright
GUICtrlSetBkColor($_ID, $_BkCol)
; get contrast
Local $R = BitAND(BitShift($_BkCol, 16), 0xFF)
Local $G = BitAND(BitShift($_BkCol, 8), 0xFF)
Local $B = BitAND($_BkCol, 0xFF)
Local $Brightness = Sqrt($R^2*0.299 + $G^2*0.587 + $B^2*0.114)
;~ Local $iCol = $Brightness < 128 ? $_ColOnDark : $_colOnBright
Local $iCol = $Brightness < 140 ? $_ColOnDark : $_colOnBright
Return GUICtrlSetColor($_ID, $iCol)
EndFunc
Func _GuiHole($h_win)
Local $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
_AddCtrlRegion($combined_rgn, $aLabel)
_WinAPI_SetWindowRgn($h_win, $combined_rgn)
_WinAPI_DeleteObject($combined_rgn)
EndFunc ;==>_GuiHole
Func _AddCtrlRegion($full_rgn, $ctrl_id)
Local $ctrl_pos, $ctrl_rgn
If IsArray($ctrl_id) Then
For $i = 0 To UBound($ctrl_id) -1
If GUICtrlRead($ctrl_id[$i]) = '' Then ContinueLoop
$ctrl_pos = ControlGetPos($hGui, "", $ctrl_id[$i])
$ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
_WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
_WinAPI_DeleteObject($ctrl_rgn)
Next
Else
$ctrl_pos = ControlGetPos($hGui, "", $ctrl_id)
$ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
_WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
_WinAPI_DeleteObject($ctrl_rgn)
EndIf
EndFunc ;==>_AddCtrlRegion
Alles anzeigen
DL bisher: 15