Использование ресурса

Получить объект из ресурса не представляет проблемы: после инициации файла ресурсов Вы просто используете его метод Get, которому передаете ключ (имя) нужного ресурса. Например, в следующей программе используется файл Status.res, созданный в предыдущем примере:

Uses Objects, Drivers, Views, Menus, Dialogs, App;

var

StatusRes: TResourceFile; {Файл ресурсов}

type

PMyApp =TМуАрр; {Программа в Turbo Vision}

ТМуАрр = object (TApplication) Constructor Init; 

Procedure InitStatusLine; Virtual;

end;

Constructor TMyApp.Init; 

{Открывает поток, связанный с файлом ресурсов}

begin

StatusRes.Init(New(PBufStream,

Init('status.res',stOpen,1024)));

if StatusRes.StreamA.status <> 0 then 

Halt;

RegisterType(RStatusLine);

Inherited Init 

end;

Procedure TMyApp.initStatusLine; 

{Получает строку статуса из файла ресурсов} 

begin

StatusLine := PStatusLine(StatusRes.Get('Статус')) 

end; 

var

Prog: TMyApp;

begin

Prog.Init; 

Prog.Run; 

Prog.Done 

end.

Заметим, что если в файле ресурсов нет ресурса с указанным именем, метод Get возвращает значение NIL.

Любой ресурс можно получить из файла ресурсов сколько угодно раз и в любом порядке, т.е. файл ресурсов - это поток с произвольным доступом. При необходимости можно дополнять ранее созданный файл ресурсов новыми объектами или заменять существующие в нем объекты другими.

Для ускорения доступа к файлу ресурсов его можно связать с EMS-памятью или использовать для его размещения виртуальный диск.