3. Указания к выполнению работы

Для создания таблицы строковых ресурсов, содержащих подлежащие локализации строковые данные можно воспользоваться зарезервированным словом resourcestring. При этом смена различных таблиц во время компиляции может производится либо сменой файлов либо с помощью директивы условной компиляции DEFINE.

Для создания таблицы строковых ресурсов, попеременно загружаемых во время выполнения программы в зависимости от какого-либо параметра, следует в любом текстовом редакторе создать текстовый файл ресурса с расширением *.rc, а затем откомпилировать его в двоичный файл ресурсов с расширением *.res с помощью компилятора ресурсов brcc32. При этом строковым ресурсам следует присваивать значения, которые каким-либо образом соотносились с изменяемым параметром, чтобы затем загружать их с помощью функции LoadStr.

Пример 4.1. Пример простейшего синтаксиса объявления таблицы строковых ресурсов

STRINGTABLE
{
1001, "Скорость"
1002, "Обороты"
1003, "Температура"
}

В файле проекта добавить директиву компилятора, предписывающую включить в проект файл ресурса, например str.res:

Пример 4.2.

{$R str.res} 

Теперь в компоненте необходимую строку можно получить следующим образом:

Пример 4.3.

Var
S: string;
…
S:=LoadStr(1000+Ord(FParamType)); 

В данном примере подразумевается, что FParamType – переменная перечислимого типа, принимающая одно из 3 значений – от 0 до 2.

Для использования пользовательских курсоров необходимо создать (или взять готовые) файлы с изображениями курсоров, в текстовый ресурсный файл добавить строки аналогичные нижеприведенной:

Пример 4.4.

Cursor1 CURSOR “cursor1.cur”
Cursor2 CURSOR “cursor2.cur”

Затем необходимо откомпилировать файл ресурсов и добавить в проект ссылку на него с помощью директивы $R.

Загружать курсор в программе следует с помощью функции LoadCursor:

Пример 4.5.

Screen.Cursors[2] := LoadCursor(HInstance,'Cursor2'); 

Затем значение курсора может быть присвоено свойству Cursor какого-либо компонента:

Пример 4.6.

GroupBox1.Cursor:=1;

Для загрузки разных курсоров следует изменять индекс свойства Screen.Cursors и формировать название ресурса, содержащего курсор.

Создание ресурса, содержащего битовое изображение, аналогично созданию ресурса курсора стой разницей, что в текстовом файле ресурсов используется ключевое слово BITMAP.

Загрузка ресурса типа RT_ BITMAP может осуществляться с помощью метода LoadFromResourceName класса TBitmap, например:

Пример 4.7.

Image1.Picture.Bitmap.LoadFromResourceName(HInstance,'BITMAP2');

При необходимости попеременной загрузки различных ресурсов следует программно формировать имя ресурса на основе какого-либо параметра:

Пример 4.8.

Bitmap.LoadFromResourceName(HInstance,'BITMAP'+IntToStr(i));

В приведенном примере считается, что I – целочисленная переменная, определяющая имя ресурса.