![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
DeMoNN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 21.3.2008 Репутация: 1 Всего: 2 |
Доброго времени суток. Можно ли как-нибудь впихнуть любой файл в ресурс или прилинкковать его к самой программе так, чтобы с ним можно было работать как с файлом (копировать на диск, а там, собственно, работать, если быть точнее ), и как это сделать?
|
|||
|
||||
Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: нет Всего: 20 |
Вроде бы тип RCDATA позволяет любые бинарные данные хранить, разве нет?
-------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
DeMoNN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 21.3.2008 Репутация: 1 Всего: 2 |
позволять то он позволяет - я о нем только это и нашел. А вот как с ним работать?
|
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 3 Всего: 18 |
создаешь ресурс с файлом:
копируешь в одну папку brcc32.exe, файл для ресурса, создаешь файл 1.rc в котором пишешь FILEEXE MEGARES "file.exe". Запускаешь brcc32.exe 1.rc, в этой же папке создастся файл 1.res. Его прикрепляешь к своей проге. В самой проге для извлечения ресурса делаешь что то типа этого:
|
|||
|
||||
DeMoNN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 21.3.2008 Репутация: 1 Всего: 2 |
![]() Это сообщение отредактировал(а) DeMoNN - 3.1.2009, 01:10 |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 3 Всего: 18 |
DeMoNN, о brcc32.exe стоит почитать сначала
![]() FILEEXE MEGARES "file.exe" 1 - имя ресурса 2 - нахвание секции 3 - сам файл, который будет загнан в ресурс. По TResourceStream тоже достаточно информации, спрашивай поконкретней ![]() |
|||
|
||||
DeMoNN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 21.3.2008 Репутация: 1 Всего: 2 |
так я же конкректно спросил: куда попадает file.exe
![]() А про TResourceStream сейчас попробую погуглить. |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 3 Всего: 18 |
DeMoNN, file.exe попадает в файл ресурса, а тот в свою очередь прикрепляется к твоей программе.
|
|||
|
||||
DeMoNN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 21.3.2008 Репутация: 1 Всего: 2 |
AntonN, я имел в виду не это - это и так понятно
![]() А куда он попадает после CopyFrom(stream, stream.size) Погуглил, понял. Нашел очень похожий но чуть более понятный для меня код. Спасибо! |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 3 Всего: 18 |
в случае с копированием в TFileStream - на диск, в TMemoryStream - в "память".
|
|||
|
||||
DeMoNN |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 21.3.2008 Репутация: 1 Всего: 2 |
![]() ![]() Спасибо |
|||
|
||||
JackA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.10.2010 Репутация: нет Всего: нет |
Чайницкий вопрос. Мне нужно в ресурс занести 2 ВМР и 1 WAV. Можно это сделать в одном .rc или для каждого файла делать отдельный .rc ? И правильно ли я понимаю : файл из ресурса воспринимается как обычный файл, но только находящийся в памяти самой программы, а не на носителе, и доступен по имени, как и обычный файл, только только с несколько видоизмененным вызовом ?
Это сообщение отредактировал(а) JackA - 6.8.2011, 22:10 |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
В один rc файл можно заносить любое количество файлов, не превышающее 2Гб.
Файл из ресурсов воспринимается, как набор данных, а не как файл. Что касается обращения, то оно тоже отлично. Но, если использовать TResourceStream, то получаем единообразную работу со стримами, которая сходна с работой с файлами. |
|||
|
||||
JackA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.10.2010 Репутация: нет Всего: нет |
Thanks !
Значит, в *.rc каждый свой включаемый файл описываю одной строкой ? Или через запятую ? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Каждый файл отдельной строкой
|
|||
|
||||
JackA |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 4.10.2010 Репутация: нет Всего: нет |
Нужны 2 кнопки с рисунком типа BitBtn, чтобы картинка грузилась из ресурсов.
Скомпилил файл BitBMP.res из rc вида : MYBMPU RCDATA "UP.BMP" MYBMPD RCDATA "DOWN.BMP" ( почему-то один из источников настаивает, что надо именно в верхнем регистре ) Но вот подключать - засада : любой из методов требует Cardinal, где взять этого кардинала - непонятка. BitBtn1.Glyph.LoadFromResourceName (Instance:Cardinal; const ResNam:String), BitBtn1.Glyph.LoadFromResourcelD (Instance:Cardinal; ResID:Integer), В случае со звуком из ресурса было без проблем :
Попытался вместо кардинала подсунуть ему pData - ругается на несовместимость типов. Как быть, подскажите, плииз. Это сообщение отредактировал(а) JackA - 27.10.2011, 12:25 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |