Всем посетителям
'Азбуки VB' – посвящается…
Создание файла ресурсов (*.res)
А. Новожилов
Ч
итая разные умные книжки по VB, каждый из нас наверняка сталкивался с понятием файла ресурсов. Авторы этих книг приводят различные приемы и способы создания и использования этих файлов. В этой небольшой статье я попытаюсь объяснить простой и быстрый способ создания вышеупомянутых файлов. Нужны они Вам или не нужны – решайте сами.
Вот несколько важных на мой взгляд моментов:
Файл ресурсов в проекте может быть один и только один, но вставить в него можно море и еще небольшую лужицу, размером с океанчик;
После создания файла ресурсов картинки, тексты и т.д., которые были вставлены в файл - не нужны;
Не присваивайте идентификационный номер 1, т.к. VB резервирует этот номер для себя;
Экспериментируя, я создал две программы, выполняющих одну и ту же задачу. Одну с файлом ресурсов, а другую без него. Конечные EXE файлы получились одного и того же размера, а разницы в скорости я не заметил.
Итак, как создать файл ресурсов:
Ø Пользователям VB5
Ø Пользователям VB6
Ø Пример проекта с файлом ресурсов
Ø Как обратиться к файлу ресурсов
Создание файла ресурсов в Visual Basic 5.0
Создать текстовый файл со сценарием и сохранить его в виде имяфайла.RC
Скомпилировать этот файл при помощи программы RC.EXE
Присоединить этот файл к проекту и написать правильный код
1. Создание текстового файла сценария
В любом текстовом редакторе наберите следующий текст:
STRINGTABLE DISCARDABLE
BEGIN
100 "Двойка бубен"
101 "Двойка крестей"
102 "Двойка пик"
103 "Двойка червей"
END
200 BITMAP 2б.bmp
201 BITMAP 2к.bmp
202 BITMAP 2п.bmp
203 BITMAP 2ч.bmp
STRINGTABLE - говорит компилятору, что ниже будут данные, имеющие тип STRING (т.е. текст);
BEGIN, END – начало, конец списка данных;
100-103 – идентификационный номер каждой строки;
“Текст в кавычках” – текст, который Вы будете использовать в своей программе;
DISCARDABLE - говорит компилятору, что ниже будут данные, в нашем случае, имеющие тип BITMAP (т.е. картинки)
200-203 – идентификационный номер каждой картинки;
2б.bmp-2ч.bmp – это файлы с картинками (я их просто так обозвал)
*числа 100-103 и 200-203 выбраны произвольно, как и имена строк и картинок. Не присваивайте нигде идентификационный номер 1, т.к. VB резервирует его для себя
Сохраните этот файл под именем MYRESFILE.RC
Перепишите туда же файлы с картинками 2б.bmp, 2к.bmp, 2п.bmp, 2ч.bmp , (их потом можно удалить и файл MYRESFILE.RC тоже)
Все готово для компиляции сценария.
2. Компиляция сценария
Найдите у себя на диске файл RC.EXE, он обычно лежит в папке DevStudio\VB\Wizards
Перепишите в этот каталог созданный скрипт MYRESFILE.RC и файлы с картинками, после этого наберите и выполните командную строку:
RC.EXE /R /FO MYRESFILE.RES MYRESFILE.RC
(можно в DOS-e, можно через ПУСК, Выполнить и т.д.)
Если все сделано правильно, то на диске родится новый файл с именем MYRESFILE.RES
3. Присоединение файла к проекту
Ø Пример проекта с файлом ресурсов
В начало
Создание файла ресурсов в Visual Basic 6.0
Вызвать встроенный в VB6 редактор ресурсов
Создать в нем сценарий (что придумано очень удобно и понятно!) и сохранить его в виде имяфайла.RC
Присоединить этот файл к проекту и написать правильный код
1. Вызов встроенного редактора ресурсов
Откройте меню Add-Ins и выберите опцию Add-In Manager…
В открывшейся форме найдите VB6 Resource Editor, выделите его и внизу справа поставьте галочку на Loaded/Unloaded и нажмите Ок.
2. Создание файла ресурсов
Выберите меню Tools и в самом низу Resource Editor.
Вы в рабочем окне редактора файла ресурсов. Выберите значок (Edit String Tables…). Перед Вами откроется форма с таблицей для редактирования, в левой части которой идентификационный номер записи (по умолчанию он 101), а в правой - поле для ввода текста.
Сделав двойной щелчок по номеру, Вы увидите, что появился мигающий курсор. Введите в это поле 100, а в поле для текста - Двойка бубен, нажмите Enter. Появится следующая строка. Последовательно введите:
101 Двойка крестей
102 Двойка пик
103 Двойка червей
Закройте эту форму крестиком. Теперь выберите картинку (Add Bitmap…). В появившейся форме найдите файл с двойкой бубен (2б.bmp) и нажмите Ок. Теперь у Вас имеется раздел String Table, содержащий 4 строки с текстом и раздел с одной картинкой (двойкой бубен).
Сделайте двойной щелчок по 101 для редактирования идентификационного номера картинки.
Исправьте в поле Id: 101 на 200 и нажмите Ок. Нажимая на Add Bitmap добавьте остальные три файла с картами (2к.bmp, 2ч.bmp, 2п.bmp). В результате у Вас будет такая картина.
*числа 100-103 и 200-203 выбраны произвольно, как и имена строк и картинок. Не присваивайте нигде идентификационный номер 1, т.к. VB резервирует его для себя
Если нажать на значок с дискетой, то можно сохранить этот файл на диске, что мы и сделаем.
При сохранении укажите место и имя файла MYRESFILE.RES. Вы только что создали и сохранили файл ресурсов.
3. Присоединение файла к проекту
Ø Пример проекта с файлом ресурсов
В начало
Пример проекта с файлом ресурсов
Создайте новый проект. Поместите на него PictureBox, Label и VScroll, оставив при этом имена элементов по умолчанию (Picture1, Label1, VScroll1).
Добавьте с помощью этого меню созданный файл ресурсов, в нашем случае это MYRESFILE.RES
В результате в окне проекта Вы увидите присоединенный к проекту файл ресурсов.
В редакторе введите приведенный ниже код и запустите проект.
Option Explicit
Private Sub Form_Load()
Label1.AutoSize = True
Picture1.AutoSize = True
VScroll1.Min = 100
VScroll1.Max = 103
VScroll1.Value = 100
Label1.Caption = LoadResString(VScroll1.Value)
Picture1.Picture = LoadResPicture(VScroll1.Value + 100, vbResBitmap)
End Sub
Private Sub VScroll1_Change()
Label1.Caption = LoadResString(VScroll1.Value)
Picture1.Picture = LoadResPicture(VScroll1.Value + 100, vbResBitmap)
End Sub
После запуска проекта Вы увидите следующую картину. Изменяя значение VScroll, можно наблюдать, как изменяется картинка и надпись.
Вот и все.
После того, как Вы создали файл ресурсов, картинки, иконки, звуки и т.д., на которые Вы ссылались - больше не нужны, их просто можно удалить.
Файл ресурсов в проекте может быть только один.
Размер текста в файле ресурсов (насколько я понял из HELP-а) не может превышать 64 Кб.
В начало
Синтаксис обращения к присоединенному файлу ресурсов
Загрузка текстовых данных
Объект = LoadResString(index)
Index – идентификационный номер строки
Объект – TextBox, Label и все остальное, куда можно грузить текст
Загрузка графических данных
Объект = LoadResPicture(index,format)
Index – идентификационный номер строки с картинкой
Format – тип загружаемых данных: VbResBitmap - картинки
VbResCursor - курсоры
VbResIcon - иконки
Объект – PictureBox, Image и все остальное, куда можно грузить графику
Загружает данные и возвращает байтовый массив
Объект = LoadResData(index, format)
Index – идентификационный номер строки с данными
Format – тип возвращаемых данных в виде байтов:
1 Курсор
2 Графика
3 Иконка
4 Меню
5 Окно диалога
6 Текст
7 Каталог со шрифтами
8 Шрифт
9 Таблица
10 Пользовательские ресурсы
12 Группа курсоров
14 Группа иконок
set Picture1.Picture=vb.LoadResPicture(101,vbResIcon)
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 152