Тема: VBScript: настраиваемый диалог компонента JSForm.dll
Бесплатный COM-сервер JSForm.dll позволяет вывести на экран настраиваемую форму диалога для запроса некоторых данных от пользователя. Размер дистрибутива (архив) — около 75 Кб.
Компонент позволяет немного настроить внешний вид диалога, вывести одно или два текстовых поля ввода (одно из которых может быть многострочным с прокруткой), вывести до трёх кнопок с произвольными названиями, список с возможностью выбора элемента. Компонент предельно прост и не требует обработки событий в коде (событий у компонента нет). Вместе с тем, с помощью многократных показов/скрытий формы можно организовать достаточно сложное поведение.
Пример вывода формы:
Set oWin = CreateObject("JSForm.Window")
oWin.Title = "Заголовок окна"
oWin.Caption = "Заголовок формы"
' картинка в верхнем левом углу формы, максимум 48x48 pixels, ICO, BMP, JPG или GIF:
oWin.Picture = "C:\Temp\test.ico"
' два текстовых поля; первое - многострочное, размером 300х100:
oWin.ShowTextBox(True, 300, 100) = 2
oWin.Text1Caption = "Заголовок первого поля"
oWin.Text2Caption = "Заголовок второго поля"
oWin.Text1Text = "Содержимое " & vbCrLf & "первого поля"
oWin.Text2Text = "Содержимое второго поля"
'oWin.TextFontBold = True ' жирный шрифт для полей
oWin.TextFontLarge = True ' крупный шрифт для полей
'oWin.Text1Select 5, 3 ' предварительно выделить в первом поле три символа, начиная с пятого
oWin.ShowButtons = 3 ' три кнопки (любая кнопка закрывает диалог)
oWin.Button1Caption = "Первая"
oWin.Button2Caption = "Вторая"
oWin.Button3Caption = "Третья"
oWin.ShowList() ' вывести список вверху формы
oWin.LoadList "элемент 1,элемент 2,элемент 3" ' заполнить список
oWin.AddToList "элемент 4"
oWin.ButtonColor = "B0B0B0" ' цвет кнопок
oWin.WindowColor = "C0C0C0" ' цвет окна
oWin.TextColor = "0000C0" ' цвет текста надписей формы
oWin.Persist = True ' сохранять содержимое диалога после закрытия
oWin.Show()
' =========================================================
'WScript.Echo oWin.GetList() ' содержимое списка, разделённое запятыми
'WScript.Echo oWin.RemoveSelListItem ' вытолкнуть выбранный пользователем элемент списка
'WScript.Echo oWin.GetList() ' оставшееся содержимое списка
'WScript.Echo oWin.ClearList() ' очистка списка (например, перед повторным показом формы)
i = oWin.Response(s, s1, s2)
WScript.Echo "была нажата кнопка " & i
WScript.Echo "первое поле: " & s
WScript.Echo "второе поле: " & s1
WScript.Echo "выбрано из списка: " & s2
Кроме того, компонент имеет методы для вывода интерактивных окон выбора файлов, папок и цвета:
Set oWin = CreateObject("JSForm.Window")
WScript.Echo oWin.ChooseFileOpen()
WScript.Echo oWin.ChooseFileSave()
WScript.Echo oWin.ChooseFolder("Выберите папку:")
res = oWin.ChooseColorRGB(r, g, b)
WScript.Echo res, r, g, b
WScript.Echo oWin.ChooseColorHex() ' 6-символьная строка
Есть специальные методы для сохранения и чтения настроек, которые будут всегда находиться в файле jsformdll.ini в каталоге Windows:
Set oWin = CreateObject("JSForm.Window")
errCode = oWin.SaveInfo("Section1", "Name", "значение")
errCode = oWin.GetInfo("Section1", "Name", val)
WScript.Echo val
errCode = oWin.DeleteInfo("Section1", "Name")
errCode = oWin.GetInfo("Section1", "Name", val)
WScript.Echo val
Также можно проиграть WAV-файл:
Set oWin = CreateObject("JSForm.Window")
oWin.PlaySound "C:\Windows\Media\Chimes.wav"
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.