Главная arrow Язык программирования Pascal arrow Турбо Паскаль Начальный курс В.В.Фаронов arrow 21.2. Использование ресурса Турбо Паскаль В.В. Фаронов

21.2. Использование ресурса Турбо Паскаль В.В. Фаронов

Получить объект из ресурса не представляет проблемы: после инициации файла ресурсов Вы просто используете его метод 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-памятью или использовать для его размещения виртуальный диск.