![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите мне пожалуйста, кто может !
Как поместить какой-нибудь ресурс (например .bmp) внутрь своего ЕХЕ и считать его потом оттуда ? Когда я добавляю такую строчку {$R image.bmp} то при запуске проги появляется сообщение с ошибкой. |
|
#2
|
||||
|
||||
|
смотри внутри - я всё сделал..
тока прочти readme да кстати все ресурсы можно так пихать... просто ты не сказал конкретно.. ведь можно, если знать какой тип ресурса(bmp, cur или что ещё) запихнуть его так, что бы потом удобнее было пользоваться.. извини говорю абстрактно - но на это есть теория, советую.. Последний раз редактировалось Ferra, 08.12.2006 в 18:29. |
|
#3
|
||||
|
||||
|
Пользоваться (это если ресурс был в длл)
Код:
procedure ExtractIcon(FName: String);
var
stream: TResourceStream;
begin
stream := TResourceStream.Create(LoadLibrary(pchar(Fname)), 'CD_Rom', 'Icons');
with TFileStream.Create('test.png', fmCreate) do
begin
CopyFrom(stream, stream.Size);
Free;
end;
end;
Если в себе Код:
procedure ExtractIcon;
var
stream: TResourceStream;
begin
stream := TResourceStream.Create(hInstance, 'CD_Rom', 'Icons');
with TFileStream.Create('test.png', fmCreate) do
begin
CopyFrom(stream, stream.Size);
Free;
end;
end; Последний раз редактировалось Ferra, 08.12.2006 в 18:35. |
|
#4
|
|||
|
|||
|
Создаешь в текстовом редакторе файл "xxxxxxxxx.rc"
в нем пишешь, например: shareware INCFILE shareware.pas название файла - твое, если файл ресурса сидит далеко не в корне этого каталога - укажи путь к нему потом скомпили свой RC файл программой brcc32.exe и подключи получившийся файл xxxxxxxxxxx.res к нужному модулю командой {$R xxxxxxxxxxx.res} procedure ExtractRes(ResType, ResName, ResNewName : String); var Res : TResourceStream; begin Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName); Res.Free; end; Для извлечения (пишешь в обработчике) ExtractRes('INCFILE', 'shareware', 'shareware.pas'); Вот собственно и все - запихали в файл все, что надо, а потом вынимаем по необходимости. З.Ы. Таким образом в один exe можно напихать туеву хучу других, а потом вынимать и запускать....... |
|
#5
|
||||
|
||||
|
|
|
#6
|
|||
|
|||
|
Спасибо всем, вроде всё работает !
З.Ы. Decoding, Хороший сайт |