- Сообщения
- 5,379
- Репутация
- 2,724
AutoIt: 3.3.6.1
Версия: 1.1
Категория: Окна и диалоги
Описание: Выводит диалог для выбора цвета в трех цветовых моделях - RGB (Red, Green, Blue), HSL (Hue, Saturation, Lightness) и HSB (Hue, Saturation, Brightness). Это не программа, это функция, которую Вы можете использовать в ваших скриптах. Данная функция аналогична функции _ChooseColor() из библиотеки Misc.au3, которая входит в состав дистрибутива AutoIt. Также присутствует инструмент (пипетка) для получения цвета с экрана монитора.
Синтаксис и параметры:
Пример 1:
Пример 2: (необходима библиотека ColorPicker.au3)
Скриншот:
Источник: ColorChooser UDF (оффициальный форум)
Автор: Yashied
Примечания:
Версия: 1.1
Категория: Окна и диалоги
Описание: Выводит диалог для выбора цвета в трех цветовых моделях - RGB (Red, Green, Blue), HSL (Hue, Saturation, Lightness) и HSB (Hue, Saturation, Brightness). Это не программа, это функция, которую Вы можете использовать в ваших скриптах. Данная функция аналогична функции _ChooseColor() из библиотеки Misc.au3, которая входит в состав дистрибутива AutoIt. Также присутствует инструмент (пипетка) для получения цвета с экрана монитора.
Синтаксис и параметры:
Синтаксис вызова:
Параметры:
$iColor (Опционально)
Цвет, который нужно установить при открытии диалога "Color Chooser". Тип этого параметра зависит от значения $iRefType (см. ниже) и должен быть одним из представленных в этой таблице. По умолчанию, значение цвета равно 0 (0x000000).
$hParent (Опционально)
Указатель (хэндл) на родительское окно для диалога "Color Chooser". По умолчанию, значение этого параметра равно 0.
$iRefType (Опционально)
Определяет цветовую модель, в которой задан начальный цвет $iColor. Значение этого параметра может быть одним из следующих:
0 - RGB (По умолчанию)
1 - HSL
2 - HSB
$iReturnType (Опционально)
Определяет цветовую модель, в которой функция должна возвратить выбранный цвет. Значение этого параметра может быть одним из следующих:
0 - RGB (По умолчанию)
1 - HSL
2 - HSB
$iFlags (Опционально)
Определяет внешний вид и функциональность диалога "Color Chooser". Этот параметр может быть одним из следующих значений или их комбинаций:
$CC_FLAG_SOLIDCOLOR
$CC_FLAG_CAPTURECOLOR
$CC_FLAG_USERCOLOR
$CC_FLAG_DEFAULT
Если установлен флаг $CC_FLAG_USERCOLOR, Вы можете сохранять до 20 значений цветов (в RGB). Эти значения сохраняются в следующей ветке реестра и доступны всем программам, использующим данную функцию:
HKEY_CURRENT_USER\SOFTWARE\Y's\Common Data\Color Chooser\x.x\Palette
Здесь x.x - версия UDF.
$sTitle (Опционально)
Название для диалога "Color Chooser", которое будет отображаться в заголовке окна. По умолчанию - "Color".
Возвращаемое значение:
Функция возвращает значение выбранного цвета в цветовой модели, заданной параметром $iReturnType. В случае, если цвет не был выбран - (-1).
Код:
_ColorChooserDialog ( [$iColor [, $hParent [, $iRefType [, $iReturnType [, $iFlags [, $sTitle]]]]]] )
Параметры:
$iColor (Опционально)
Цвет, который нужно установить при открытии диалога "Color Chooser". Тип этого параметра зависит от значения $iRefType (см. ниже) и должен быть одним из представленных в этой таблице. По умолчанию, значение цвета равно 0 (0x000000).
RGB | Цвет задается целочисленным числом в виде 0xRRGGBB, где RR, GG, BB - компоненты RGB цвета (0-255). |
HSL | Цвет задается массивом из трех элементов, соответствующих компонентам цвета. [0] - Hue (0-240) [1] - Saturation (0-240) [3] - Lightness (0-240) |
HSB | Цвет задается массивом из трех элементов, соответствующих компонентам цвета. [0] - Hue (0-360)° [1] - Saturation (0-100)% [3] - Brightness (0-100)% |
$hParent (Опционально)
Указатель (хэндл) на родительское окно для диалога "Color Chooser". По умолчанию, значение этого параметра равно 0.
$iRefType (Опционально)
Определяет цветовую модель, в которой задан начальный цвет $iColor. Значение этого параметра может быть одним из следующих:
0 - RGB (По умолчанию)
1 - HSL
2 - HSB
$iReturnType (Опционально)
Определяет цветовую модель, в которой функция должна возвратить выбранный цвет. Значение этого параметра может быть одним из следующих:
0 - RGB (По умолчанию)
1 - HSL
2 - HSB
$iFlags (Опционально)
Определяет внешний вид и функциональность диалога "Color Chooser". Этот параметр может быть одним из следующих значений или их комбинаций:
$CC_FLAG_SOLIDCOLOR
$CC_FLAG_CAPTURECOLOR
$CC_FLAG_USERCOLOR
$CC_FLAG_DEFAULT
Если установлен флаг $CC_FLAG_USERCOLOR, Вы можете сохранять до 20 значений цветов (в RGB). Эти значения сохраняются в следующей ветке реестра и доступны всем программам, использующим данную функцию:
HKEY_CURRENT_USER\SOFTWARE\Y's\Common Data\Color Chooser\x.x\Palette
Здесь x.x - версия UDF.
$sTitle (Опционально)
Название для диалога "Color Chooser", которое будет отображаться в заголовке окна. По умолчанию - "Color".
Возвращаемое значение:
Функция возвращает значение выбранного цвета в цветовой модели, заданной параметром $iReturnType. В случае, если цвет не был выбран - (-1).
Пример 1:
Код:
#Include <ColorChooser.au3>
Opt('MustDeclareVars', 1)
Global $hForm, $Msg, $Label, $Button, $Data, $Color = 0x50CA1B
$hForm = GUICreate('MyGUI', 170, 200)
$Label = GUICtrlCreateLabel('', 15, 15, 140, 140, $SS_SUNKEN)
GUICtrlSetBkColor(-1, $Color)
$Button = GUICtrlCreateButton('Select color...', 35, 166, 100, 23)
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button
$Data = _ColorChooserDialog($Color, $hForm)
If $Data > -1 Then
GUICtrlSetBkColor($Label, $Data)
$Color = $Data
EndIf
EndSwitch
WEnd
Пример 2: (необходима библиотека ColorPicker.au3)
Код:
#Include <ColorChooser.au3>
#Include <ColorPicker.au3>
Opt('MustDeclareVars', 1)
Global $hForm, $Msg, $Label, $Picker
$hForm = GUICreate('MyGUI', 170, 200)
$Label = GUICtrlCreateLabel('', 15, 15, 140, 140, $SS_SUNKEN)
GUICtrlSetBkColor(-1, 0x50CA1B)
$Picker = _GUIColorPicker_Create('', 55, 166, 60, 23, 0x50CA1B, BitOR($CP_FLAG_CHOOSERBUTTON, $CP_FLAG_MAGNIFICATION, $CP_FLAG_ARROWSTYLE), 0, -1, -1, 0, 'Simple Text', 'Custom...', '_ColorChooserDialog')
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Picker
GUICtrlSetBkColor($Label, _GUIColorPicker_GetColor($Picker))
EndSwitch
WEnd
Скриншот:
Источник: ColorChooser UDF (оффициальный форум)
Автор: Yashied
Примечания:
- ВАЖНО. Данная библиотека использует следующие оконные сообщения (WM_...):
WM_COMMAND
WM_NCRBUTTONDOWN
WM_SETCURSOR
WM_SYSCOMMAND
Поэтому, если ваш код предусматривает использование этих сообщений, то в соответствующих функциях обработки необходимо вызвать обработчики из этой библиотеки, в противном случае, функция будет работать неправильно, например:
Func MY_WM_SETCURSOR($hWnd, $iMsg, $wParam, $lParam)
Local $Result = CC_WM_SETCURSOR($hWnd, $iMsg, $wParam, $lParam)
If Not $Result Then
Return 0
EndIf
...
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_SETCURSOR
- Функция _ColorChooserDialog() полностью совместима с библиотекой ColorPicker.au3 (v1.5) и может быть использована в качестве функции для диалога выбора цвета.
- Т.к. обе библиотеки используют одинаковые оконные сообщения, то, в случае необходимости, нужно ссылаться (вызывать) только один обработчик для одного сообщения из любой библиотеки (см. п. 1).
- Данная библиотека содержит только одну функцию, предназначенную для использования в ваших скриптах. Не используйте другие функции, они предназначены только для внутреннего использования.