При использовании сторонних элементов управления в программировании VB программа должна иметь возможность находить сторонние элементы управления, используемые в системном каталоге или каталоге программы. Обычно существует два метода: первый состоит в том, чтобы поместить элемент управления и программу в сжатый пакет и распространить его. Недостаток этого метода заключается в том, что это может привести к потере управляющего файла в процессе распространения программы. Во-вторых, необходимо создать программу установки. Недостаток заключается в том, что производственный процесс является громоздким. В этой статье описывается, как сохранить сторонние элементы управления в программе в виде пользовательских файлов ресурсов. После запуска программы и перед использованием элементов управления используемые элементы управления генерируются в каталоге программы для завершения оболочки элементов управления из исполняемого файла. файл.
Конкретные шаги заключаются в следующем:
Шаг 1. Скопируйте элемент управления, который будет использоваться, в текущий каталог проекта, щелкните элемент управления правой кнопкой мыши, выберите «Свойства» и запишите размер файла. Обратите внимание, что для целей программирования вам следует записывать конкретное число в байтах, а не в количестве К.
Шаг 2: См. и используйте элемент управления как обычно.
Шаг 3. Создайте новый файл ресурсов и добавьте его в проект. Добавьте сторонний элемент управления, используемый в качестве пользовательского ресурса (CUSTOM), в редакторе файлов ресурсов. Используйте значение по умолчанию 101 для номера ресурса. Если используется несколько элементов управления, добавьте их в элементы ресурсов 101, 102... в файле ресурсов соответственно, а код оболочки также необходимо соответствующим образом изменить.
Шаг 4: Напишите код оболочки управления для чтения данных файла ресурсов и создания элемента управления в текущем каталоге программы.
Код выглядит следующим образом:
Private Const OCXSIZE = 57344 'Размер создаваемого элемента управления — 57344 байт, имя — CoolToolBar.ocx
Подглавная()
Dim Ocx() As Byte 'OCX — это массив типа Btye
Тусклый счетчик до тех пор, пока
Ocx = LoadResData(101, CUSTOM) 'Чтение ресурса № 101 из пользовательского ресурса в массив OCX
«Обратите внимание, что в инструкциях по загрузке пользовательских ресурсов в справке Microsoft есть ошибка. Пользовательский ресурс обозначен как CUSTOM вместо числа 10, упомянутого в справке.
If Right(App.Path, 1) = ($%$43%^#ASD#2@$#f$%^) Тогда 'Прочитайте путь к программе, определите, является ли он корневым каталогом, и обработайте его отдельно
'Программа находится в корневом каталоге
If Dir(App.Path & CoolToolBar.ocx) = then 'Есть ли элемент управления в пути к программе? Если нет, то элемент управления будет создан?
'Записать (сгенерировать) элемент управления (CoolToolBar.ocx) в двоичном режиме в каталог, где находится основная программа
Откройте App.Path и CoolToolBar.ocx для двоичного файла под номером 1.
For Counter = 0 To OCXSIZE - 1 'Обратите внимание, что, поскольку он начинается с 0 байт, размер файла - 1 байт является окончательным значением.
Поместите #1, , Ocx(Счетчик)
Следующий счетчик
Закрыть #1
Конец, если
Еще
'Программа находится не в корневом каталоге
If Dir(App.Path &/CoolToolBar.ocx) = then 'Есть ли элемент управления в пути к программе? Если нет, то элемент управления будет создан?
'Записать (сгенерировать) элемент управления (CoolToolBar.ocx) в двоичном режиме в каталог, где находится основная программа
Откройте App.Path и /CoolToolBar.ocx для двоичного файла под номером 1.
For Counter = 0 To OCXSIZE - 1 'Обратите внимание, что, поскольку он начинается с 0 байт, размер файла - 1 байт является окончательным значением.
Поместите #1, , Ocx(Счетчик)
Следующий счетчик
Закрыть #1
Конец, если
Конец, если
Form1.Visible = True 'Элементы управления, используемые в основной программе, созданы, отображают основную форму и входят в основную программу.
Конец субтитра
Примечание. Добавьте приведенный выше код в проект в качестве модуля и выберите объект запуска в качестве Sub Main в настройках свойств проекта-проекта, который представляет собой приведенный выше код оболочки. Затем скомпилируйте и сгенерируйте EXE-файл, скопируйте EXE-файл на другие компьютеры, на которых не установлен элемент управления, и запустите его, чтобы проверить, достигнута ли переносимость элемента управления.