1

Тема: HTA: Вызов стандартного диалога выбора цвета

В процессе разработки скриптовых проектов может появится задача присвоения заданного цвета тому или иному элементу. Такой вопрос можно решить, вызывая стандартный диалог выбора цвета с помощью OLE-объекта HtmlDlgHelper.

-----------------------------------------------------------------------------------------------
Пример использования объекта htmlDlgHelper для  вызова стандартного диалога выбора цвета.
Платформа: HTA, Язык: VBScript, ОС WIn98 4.10.2222, WinXP SP2 5.1.2600
-----------------------------------------------------------------------------------------------
<HTML>
<meta 
    http-equiv=Content-Type 
    content="text/html;charset=windows-1251"
>

<TITLE>Пример htmlDlgHelper</TITLE>

<HEAD>
    <HTA:APPLICATION
        ID="m4"
        APPLICATIONNAME="dlgHelper"    
    />
</HEAD>

    <BODY SCROLL="NO">

    <OBJECT ID="Helper">
    </OBJECT>

    <INPUT TYPE=BUTTON ID="Button1" style="width=200;"
        VALUE="Выбор цвета" 
        onclick='chooseBgColor();'
    >

<SCRIPT Language="VBScript">
'-----------------------------------------------------------------------------------------------
'OLE объект HtmlDlgHelper.HtmlDlgHelper
'Идентификатор класса 3050f4e1-98b5-11cf-bb82-00aa00bdce0b
'Библиотека mshtmled.dll
'-----------------------------------------------------------------------------------------------
    Helper.classid="CLSID:3050f4e1-98b5-11cf-bb82-00aa00bdce0b"
    Helper.style.height=0
    Helper.style.width=0
'----------------------------------------------------------
'Стандартный диалог выбора цвета
function chooseBgColor()
    On Error Resume Next
    '------------------------------------
     color=Helper.choosecolordlg()
    'Цвет возвращается десятичным числом
    'в формате BGR
    '------------------------------------
    if color=0 then Exit Function
        color=hex(color)
    if len(color)=2 then
        r=right(color,2)
        g="00"
        b="00"
    end If
    if len(color)=4 then
        r=right(color,2)
        g=left(color,2)
        b="00"
    end If
    if len(color)=6 then
        r=right(color,2)
        g=mid(color,3,2)
        b=left(color,2)
    end If
    color=r & g & b
    '-------------------------------------
    'Присвоение цвета объекту
    document.body.style.backgroundColor=color
MsgBox _
    "Выбран следующий цвет(HEX): [" & color & "]", _
    vbInformation, _
    "Выбор цвета"
end function
</SCRIPT>
</BODY>
</HTML>

Автор примера - Poltergeyst.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.