Тема: 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.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.