Создание ресурса
Поскольку ресурс - это поток, для создания ресурса необходимо открыть (создать) поток. Для этого следует использовать метод Init для потока нужного типа (обычно используется буферизованный поток TBufStream или его потомок). После того как поток успешно открыт, в него помещают нужные объекты с их уникальными ключами и затем поток закрывается - файл ресурсов готов.
Вот как, например, можно создать ресурс, содержащий строку статуса с именем (ключом) «Статус»:
Uses Drivers, Objects, Views, App, Menus;
var
StatusRes: TResourceFile; {Файл ресурсов}
PStatusStrm: PBufStream; {Буферизованный поток}
Procedure CreatestatusLine;
{Создает строку статуса и помещает ее в файл ресурсов}
var
R: TRect;
PStatus: PStatusLine;
begin
R.Assign(0,24,80,25) ;
PStatus := New(PStatusLine, Init(R,
NewStatusDef(0, $FFFF,
NewStatusKey('~Alt-X~ Выход', kbAltX, cmQuit,
NewStatusKey('Демонстрация строки статуса',О,0, NIL)),
NIL)) ) ;
StatusRes.Put(PStatus, 'Статус');
Dispose(PStatus, Done)
end;
begin
PStatusStrm := New(PBufStream,Init(
'status.res',stCreate,1024));
StatusRes.Init(PStatusStrm); {Создаем поток}
RegisterType(RStatusLine); {Регистрируем строку статуса}
CreateStatusLine; {Помещаем строку статуса в поток}
StatusRes.Done
end.
В программе создается поток, связанный с указателем PStatusStrm, и в него с помощью процедуры CreateStatusLine помещается строка статуса. Этой строке присваивается ключ Статус.