TURBO PASCAL |
Новости
|
9.4.1. Создание ресурсовДля создания ресурса любого типа можно использовать редактор ресурсов Resourse Workshop или один из компиляторов ресурсов — BRC.EXE или BRCC.EXE. Поскольку редактор ресурсов работает только в среде Windows, а эта операционная система необязательно установлена на Вашем ПК, дальше описывается процесс создания ресурсов с помощью компиляторов, которые работают под управлением MS-DOS. Компилятор ресурсов получает текстовый файл описания ресурсов и производит двоичный ресурсный файл. По умолчанию расширение текстового файла — RC, а ресурсного файла — RES. Текст .КС—файла со— тавляется на специальном языке описания ресурсов. Каждый ресурс в RC—файле содержит заголовок и описание. В заголовке, имеющем формат [<ИМЯ_РЕСУРСА>] <ТИП_РЕСУРСА> указывается имя ресурса и его тип. Имя ресурса — обязательный параметр для всех ресурсов, кроме строковых. При формировании имени используются правила создания идентификаторов Паскаля: • имя содержит латинские буквы, цифры и знак подчеркивания; • имя не может начинаться с цифры; • разница в высоте символов имени игнорируется, т.е. имена MYRES и MyRes считаются синонимами. Тип ресурса задается одним из зарезервированных слов: STRINGTABLE — для строкового ресурса и RCDATA — для ресурса пользователя. В отличие от имен эти слова, а также зарезервированные слова BEGIN и END, обрамляющие раздел описания ресурса, должны состоять только из заглавных букв. Раздел описания открывается словом BEGIN и завершается словом END. Каждая строка в строковом ресурсе описывается следующим образом: <НОМЕР>"[<СТРОКА>]" <НОМЕР> представляет собой произвольное целое число без знака в диапазоне от 0 до 65535. Это число трактуется как уникальный идентификатор строки и не может быть одинаковым у двух разных строк в пределах всего RC—файла, (в файле может быть сколько угодно описаний строковых ресурсов). Строка обрамляется двойными кавычками и может быть пустой, т.е. между обрамляющими кавычками может не быть ни одного символа. Если в строку необходимо поместить символ «"», он удваивается. На одной текстовой строке файла можно размещать произвольное количество описаний строк. Перед номером и после него может стоять сколько угодно разделителей — пробелов, символов табуляции и запятых. Если в строке встретилась точка с запятой, остаток строки игнорируется — таким способом можно вставлять комментарии. Внутри обрамляющих кавычек разделители теряют свое специальное назначение и считаются обычными символами. Пример правильного описания строкового ресурса: STRINGT^BLE BEGIN 1 "Первая строка" 2"Вторая строка"5"Пятая строка" ,,,,,4,,,"Четвертая строка..." END При выводе строк этого ресурса в цикле от 1 до 5 не экране появится такой текст: Первая строка Вторая строка Четвертая строка... Пятая строка Как видим, разрыв концом строки текста Четвертая строка. . . привел к тому, что вторая часть текста выводится на следующей строке, но с той же позиции, на которой закончился вывод первой части. Это связано с тем, что в строку вставился лишь символ Перевод строки (#10), но не вставился Возврат каретки (#13). Следует заметить, что компилятор ресурсов обрабатывает текст строки по правилам языка Си, в котором разрешены так называемые управляющие символы. Эти символы начинаются обратной косой чертой, за которой может следовать латинская буква, восьмеричное или 16—ричное число в диапазоне О...255. Восьмеричное число состоит из восьмеричных цифр (цифры от 0 до 7), перед 16— ричным числом указывается латинская бука х или X. Комбинация \<ЧИСЛО> определяет внутренний код вставляемого символа, т.е. играет такую же роль, что и константа #<ЧИСЛО> в Паскале. Два следующих управляющих символа вставляют в текст строки символ Возврат каретки (#13): \15 \xD Комбинация \<БУКВА> для некоторых букв латинского алфавита определяет часто используемые символы: Управляющий Значение символ \а Звуковой сигнал \Ь Забой слева {Backspace) \п Перевод строки \г Возврат каретки \t Табуляция Если текст примера отредактировать следующим образом: 4 "Четвертая\п\гстрока" на экран будет выведено: Четвертая строка В связи с тем, что символ «\» играет специфичную роль, его нужно удваивать, чтобы компилятор не рассматривал его как служебный символ: ресурс 4 "Четвертая\\строка" даст на экране Четвертая\строка Описание ресурса пользователя в заголовке содержит зарезервированное слово RCDATA, которому должно предшествовать имя ресурса. В раздел описания можно вставлять • десятичные числа типа Word, Integer, • шестнадцатеричные числа в диапазоне от $0000 до $FFFF; перед шестнадцатеричным числом ставится символ $; • цепочки символов в двойных апострофах по правилам строковых ресурсов, но без замыкающего нуля; если требуется поместить в ресурс ASCIIZ— строку, в ее конце нужно добавить «\0»; • цепочки байтов в одиночных апострофах; байты в такой цепочке задаются в 16—ричном формате и разделяются пробелами. Пример правильного описания ресурса пользователя: My Res RCDATA BEGIN "Это - АЗС112-строка\О" $FFFF, 65535 ; две формы записи одного числа "123456789 А' ; байты со значениями от 1 до 10 -1 127 ; для этих чисел будет выделен® ; по 2 байта END Длина каждого ресурса пользователя (а их в одном файле может быть сколько угодно) кратна 256 байтам. После подготовки текстового файла с описанием ресурсов его следует откомпилировать в КЕБ—файл. Для этого вызывается компилятор BRCC.EXE или компилятор—компоновщик BRC.EXE. Последний не только создает RES—файл, но и пристыковывает его в конец исполняемого файла. Поскольку компоновщик ВР также умеет работать с ресурсами (для этого введена директива {$R RESFNAME[.RES]}], удобнее использовать компилятор BRCC.EXE. Для его вызова дайте команду ДОС BRCC MyRes (предполагается, что путь к католгу размещения файла BRCC.EXE указан в переменной PATH). В результате такого обращения компилятор откомпилирует файл MYRES.RC в файл ресурса MYRES.RES. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |