Приветствую всех читателей блога scriptcoding.ru. Сегодня мы рассмотрим компонент JSForm, который позволяет программно создавать Windows формы, настраивать их, также, данная библиотека позволяет обрабатывать INI файлы.
Библиотека JSForm.dll является бесплатным COM-сервером, который позволяет создавать настраиваемую Windows форму (добавление текстового поля, дополнительных кнопок или вывод списка). Кроме того, библиотека позволяет сохранять/загружать настройки (цветовая схема, внешний вид Windows форм) в ini документ, так как документ создается в системной папке Windows, то для этого понадобится права администратора. Компонент можно скачать на официальном сайте www.jsware.net или по ссылке, которую я дам ниже. После скачивания библиотеки, ее надо зарегистрировать в системе: Пуск/Выполнить REGSVR32 «Путь к компоненту». Параллельно можете ознакомиться с такими элементами как Chilkat.Spider и JSSys3.Ops.
Для использования объекта, нужно сначала создать переменную, которая будет хранить ссылку на нужный класс:
Подключение на языке VBScript:
Set obj = CreateObject("JSForm.Window") |
Подключение на языке JScript:
obj = WScript.CreateObject("JSForm.Window"); |
После создания ссылки и сохранения ее в переменной, мы сможем использовать свойства и методы объекта.
Работа с окнами – Windows формы от JSForm
Title — Заголовок.
obj6.Title = "Новое_окно"
|
Caption – текст, отображаемый в окне. Если Persist установлено в True, то размер окна будет статическим.
obj6.Caption = "Это_новое_окно."
|
Picture – Путь к значку (размер 48×48 пикселей, поддерживаемые форматы ICO, BMP, JPG или GIF).
obj6.Picture = "C:\windows1\desktop\pic32.bmp"
|
Show — Сделать_окно видимым.
obj6.Show |
Hide – Скрыть_окно скрытым.
obj6.Hide |
Persist – Принимает True (сохранить установки) или False (сбросить установки).
Reset – Сброс настроек. Если Persist установлено в False, то настройки будут сброшены при следующем нажатии на кнопку. Reset позволяет сбросить все сразу.
obj6.Reset |
Работа с текстовыми полями
ShowTextBox(Multiline[, width][, height]) = number – создает текстовое поле на форме Windows, Multiline – принимает значения true (многострочное текстовое поле) или false (однострочное текстовое поле), width и height – необязательные параметры, которые задают ширину и высоту текстового поля, number – количество текстовых полей, принимает 1(Text1Caption, Text1Text) или 2(Text2Caption, Text2Text).
obj7.ShowTextBox(true, 400, 400) = 1 obj7.ShowTextBox(false) = 2 ' отобразить два однострочных текстовых поля obj7.Text1Caption = "Enter Name Here:" obj7.Text1Text = "C:\Windows1\System" |
TextFontBold –true (установить жирный шрифт) или false, по умолчанию стоит false.
obj7.TextFontBold = True
|
TextFontLarge — true (установить увеличенный шрифт) или false, по умолчанию стоит false.
obj7.TextFontLarge = True
|
Text1Select(start, length) – Показывает выбранный текст, работает только с текстовым полем 1 и, если multiline установлено в true. Start — значение начального параметра, length — длина.
obj7.Text1Select 5, 3 'выбираем три символа, начиная с пятого
|
Работа с кнопками
ShowButtons – определяет количество отображаемых кнопок на форме Windows, может принимать значения 1(Button1Caption), 2(Button2Caption) и 3(Button3Caption)
obj1.ShowButtons = 2 obj1.Button1Caption = "YES" obj1.Button2Caption = "NO" |
Работа со списками
ShowList – отобразить список в окне.
LoadList(list) – загрузить список list.
obj1.LoadList "item1,item2,item3"
|
GetList – Вернет все элементы списка, разделенные запятыми, например, «один, два, три»
s = obj1.GetList array1 = split(s, ",") AddToList (item) obj1.AddToList "item4" |
RemoveSelListItem — удаляет 1 элемент из списка, возвращает текст удаленного элемента, если элемент не выбран, вернет «».
s = obj1.RemoveSelListItem |
ClearList – удаляет все элементы из списка.
Настройка цвета
ButtonColor – HEX код цвета для кнопок.
WindowColor – HEX код цвета для фона.
TextColor – HEX код цвета для текста в окне, свойства caption и text.
obj2.WindowColor = "FFFFFF" obj2.ButtonColor = "F9F8FF" obj2.TextColor = "0000AA" |
Если значение цвета не задано или не является допустимым, то будет применена стандартная цветовая схема. Windows формы.
Просмотр и выбор цвета – Windows формы с JSForm
ChooseFileOpen() – Показывает окно выбора документа, вернет путь выбранного файла или «» если была нажата кнопка отмена.
s = obj2.ChooseFileOpen |
ChooseFileSave() — Отображает окно сохранения документа. Возвращает имя папки, в которой произошло сохранение файла или «» если была нажата кнопка отмена.)
s = obj2.ChooseFileSave |
ChooseFolder() — Показывает окно выбора папки. Вернет имя выбранной папки или «» при выборе отмены. Caption — необязательный параметр, определяющий текст надписи, показываемый в окне выбора папки. Метод ChooseFolder также может быть использован для выбора диска, при этом будет возвращено имя выбранного диска (например: «C:»или «D:»)
s = obj2.ChooseFolder("Выберите папку")
|
ChooseColorRGB(r, g, b) – требует предварительного вызова свойства ChooseColorHex, отображает окно выбора цвета. Возвратит RGB код цвета или -1, если была нажата кнопка отмена. Также покажет значения R, G и B по отдельности.
s = obj3.choosecolorRGB(r, g, b) |
Если выбран фиолетовый цвет, то возвратит: s = 8388736 r = 128 g = 0 b = 128
ChooseColorHex() — Показывает окно выбора цвета, возвращает hex код выбранного цвета или «» если была нажата кнопка отмена.
s = obj3.ChooseColorHex |
Функции для хранения настроек в INI файле
При первом вызове функций компонента JSForm для создания форм Windows, автоматически будет создан файл jsformdll.ini в папке Windows, что не очень хорошо, так как для этого надо иметь права администратора.
GetInfo(section, key, value) – Позволяет получить сохраненные информационные установки. Возвращает 1 в случае успеха, 0 — если нет такого значения, -1 — если INI-файл отсутствует, -2, если произошла ошибка. Section – название секции, в которой будут храниться установки, key – названия ключа, например Window, Button или Text, value – число присваиваемое ключу.
Файл настроек может выглядеть следующим образом:
[Colors]
Window=FFFFFF
Button=FFF8F9
Text=0000AA
i = obj.GetInfo("Folders", "pics", s) |
SaveInfo(section, key, value) – Сохранение системных установок, возвращает 1 при удаче и -1 при ошибке.
s = "C:\Windows1\Clouds.bmp" i = obj3.SaveInfo("Settings", "Wallpaper", s) |
DeleteInfo(section, key) – удаляет заданный ключ, возвращает 1 при удаче и -1 при ошибке.
i = obj3.DeleteInfo("Settings", "Wallpaper") ' работа с Windows формами |
Response функция может быть вызвана после Show, чтобы поймать действие мышью, и возвращает результат действий пользователя:
Response(s1, s2, s3) – Возвращает номер нажатой клавиши (той, что находится на форме), номера хранится в переменных s1, s2 и s3, вернет соответственно 1, 2 или 3 или 0, ели закрытие было произведено без нажатия кнопки.
i = obl.Response(s, s1, s2)i = obl.Response(s) ' формы в Windows
i = obl.Response(, , s2)
i = obl.Response(, s1)
i = obl.Response()
|
PlaySound(путь к WAV файлу) – проигрывает аудио файл.
obj.PlaySound "C:\Windows1\Media\asterisk.wav"
|
И так, в этой статье мы рассмотрели объект JSForm, который позволяет обрабатывать и создавать формы Windows. Однако, для более функционального программирования, можно использовать объект WindowSystemObject, который содержит больше функций для обработки оконного интерфейса.