Тема: HTA: программа подбора сочетаний цвета для Web-страниц
Программа позволяет визуально подбирать цвет шрифта и фона для Web-странички.
Результат выбора отображается визуально в специальном окошке.
Программа также отображает код выбранного цвета шрифта и фона.
Имеется сервисная функция "Копировать в буфер обмена". При использовании этого сервиса код выбранного цвета автоматически копируется в буфер обмена, пользователю остается только вставить его в HTML-код странички.
Для выбора цвета используется стандартный диалог выбора цвета, идея использования этого диалога предложена Poltergeyst 'ом: http://forum.script-coding.com/viewtopic.php?id=378
<html>
<!-----------------------------------------------------------*
* Программа для подбора цветовых сочетаний *
*------------------------------------------------------------*
* ChPalette.hta *
*------------------------------------------------------------*
* Programming by vksin aka dr.VerSys *
* *
* mailto:vksin@ya.ru *
* ----------------------- *
* 2009 *
*------------------------------------------------------------>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1251">
<title>Подбор цвета</title>
<HTA:APPLICATION ID="dw01"
APPLICATIONNAME="Selection_Color"
BORDER="thin"
BORDERSTYLE="sunken"
CAPTION="yes"
CONTEXTMENU="yes"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="no"
SCROLL="no"
SHOWINTASKBAR="yes"
SYSMENU="yes">
<STYLE>
.stFontA{font-family:Tahoma;font-size:10pt;
color:#000000;}
.stFontB{font-family:Tahoma;font-weight:bolder;
font-size:8pt;color:#000000;}
</STYLE>
<!----------------------------------------------------------->
<SCRIPT language="VBScript">
Dim color, flagBtn
'установка размеров и положения окна
window.resizeTo 280, 300
window.moveTo (screen.width\2)-140, (screen.height\2)-150
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub prSetColor(btn)
'процедура установки цвета объекта
flagBtn=btn 'получает номер кнопки
On Error Resume Next
color=DlgColor.choosecolordlg()
If color=0 Then Exit Sub
color=dhGetColor(color)
If flagBtn = 0 Then '"Цвет текста"
'устанавливает цвет текста в тестовом окне
With document.all
.idColorFont.style.Color=color
.idValFont.innerHTML=color
End With
Else '"Цвет фона"
'устанавливает цвет фона тестового "окна"
With document.all
.idColorCell.style.backgroundColor=color
.idValCell.innerHTML=color
End With
End If
'Если указанное ниже условие выполняется - копирует в буфер обмена
If chClipBoard.Checked = True Then clipboardData.setData "text", color
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function dhGetColor(color)
'Функция обработки полученого значения
'из стандартного диалога выбора цвета
Dim vLen, cR, cG, cB
On Error Resume Next
color=Hex(color)
vLen = Len(color)
Select Case vLen
Case 2
cR=Right(color,2)
cG="00"
cB="00"
Case 4
cR=Right(color,2)
cG=Left(color,2)
cB="00"
Case 6
cR=Right(color,2)
cG=Mid(color,3,2)
cB=Left(color,2)
Case Else
cR="00"
cG="00"
cB="00"
End Select
color = "#" & cR & cG & cB
dhGetColor=color
End Function
</SCRIPT>
<!----------------------------------------------------------->
</head>
<body bgcolor="#EAEAEA">
<center>
<table border="0" cellpadding="0" width="220">
<tr><td><table border="1" cellpadding="0" width="100%" bgcolor="#FFFFFF">
<tr><td align="center" width="100%" height="100" id='idColorCell'>
<font size="4" id='idColorFont'><strong>Тестовое окно</strong>
</font></td></tr>
</table></td>
</tr>
<tr><td height="5"></td></tr>
<tr><td><table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td width="100" align="center" class='stFontB'>Цвет текста</td>
<td width="20"> </td>
<td width="100" align="center" class='stFontB'>Цвет фона</td>
</tr>
<tr><td height="5"></td>
<td></td>
<td></font></td>
</tr>
<tr>
<td><table border="1" width="98">
<tr><td align="center" bgcolor="#FFFFD9" id='idValFont'
class='stFontA'>#000000</td></tr></table></td>
<td></td>
<td><table border="1" width="98"><tr><td align="center"
bgcolor="#FFFFD9" id='idValCell' class='stFontA'>#FFFFFF</td></tr>
</table></td>
</tr>
<tr><td height="5"></td>
<td></td>
<td></font></td>
</tr>
<tr>
<td><input type="button" name="btnFont" value="Изменить"
style="width:98;" onClick='prSetColor(0)'></td>
<td> </td>
<td><input type="button" name="btnPage" value="Изменить"
style="width:98;" onClick='prSetColor(1)'></td>
</tr>
</table>
</center></td>
</tr>
<tr>
<td height="5"></td>
</tr>
<tr>
<td bgcolor="#FFFFD9"><input type="checkbox" name="chClipBoard">
<font size="1"> Копировать значение цвета в буфер обмена</font></td>
</tr>
</table>
</center>
<object id="DlgColor"
classid="CLSID:3050f4e1-98b5-11cf-bb82-00aa00bdce0b"
style="position:relative;left:0;top:0"></object>
</body>
</html>
Замечания:
1. Диалоговое окно, при выборе черного цвета и при нажатии кнопки "Отмена", возвращает равные значения (0 в обоих случаях).
2. В Windows 98 сервисная функция "Копировать в буфер обмена" не работает.