Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2008, 20:30   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Как можно поместить звуки и графику в EXE (какое максимальное количество и размер). Как правильно создавать rc файлы и res файлы.
Shouldercannon вне форума Ответить с цитированием
Старый 19.02.2008, 21:53   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Как можно поместить звуки и графику в EXE (какое максимальное количество и размер). Как правильно создавать rc файлы и res файлы.
Ставь RXLib и все операции с ресурсами покажутся игрой. А вставлять вы эти ресурсы сможете сколько душе угодно.
FaTaL вне форума Ответить с цитированием
Старый 19.02.2008, 22:11   #3
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Шаг первый:

Создайте файл сценария ресурса (*.RC) в обычном текстовом редакторе типа Notepad и добавьте следующую строку:


1 RCDATA "MyPic.jpg"
Первый элемент является просто индексом ресурса. Второй элемент указывает на определенный пользователем ресурс. Третий, он же последний элемент, является именем jpeg-файла.

Шаг второй:

Для компиляции ресурса в .RES-файл используйте Borland Resource Compiler, BRCC32.EXE. В командной строке MS-DOS введите:


BRCC32 MyPic.RC
Это создаст файл ресурса с именем MyPic.RES.

Шаг третий:

Добавьте директиву компилятора к исходному коду вашей программы. Она должна располагаться непосредственно за директивой формы, как показано ниже:



{$R *.DFM}
{$R MyPic.RES}




Шаг четвертый:

Добавьте следующий код к вашему проекту (для этого я создал процедуру):



procedure LoadJPEGfromEXE;
var
MyJPG: TJPEGImage; // Объект - JPEG
ResStream: TResourceStream; // Объект - поток ресурсов
begin
try
MyJPG := TJPEGImage.Create;
ResStream := TResourceStream.CreateFromID(HInsta nce, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream); // Что!? Да, это просто!
Canvas.Draw(12, 12, MyJPG);
// сделайте это, чтобы увидеть что это действительно работает!
finally
MyJPG.Free;
ResStream.Free;
end;
end; // procedure
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Старый 20.02.2008, 00:30   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Это я пробовал что-то не получается попробую еще раз. И стала ошибка доставать: [Ошибка] RLINK32: Unsupported 16bit resource in file "D:AvP2ConnectorWave.res":confu sed:
Shouldercannon вне форума Ответить с цитированием
Старый 20.02.2008, 03:42   #5
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Зайди на http://pblog.ru там есть статья с работающим исходником
Simply-Art вне форума Ответить с цитированием
Старый 20.02.2008, 12:55   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Это я пробовал что-то не получается попробую еще раз. И стала ошибка доставать: [Ошибка] RLINK32: Unsupported 16bit resource in file "D:AvP2ConnectorWave.res":confu sed:
Используйте штатный WorkShop.
Создайте новый ресурс, но обязательно укажите 32 бита, скопируйте в него содержимое старого ресурса (16-битного) и запишитесь.
А потом просто удалите старый ресурс и запишите вместо него новый, 32-битный.

И потом, эта ваша тема уже была всесторонне "обсосана" в
http://www.programmersforum.ru/showthread.php?t=12189

Последний раз редактировалось mihali4; 20.02.2008 в 13:04.
mihali4 вне форума Ответить с цитированием
Старый 20.02.2008, 19:45   #7
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
Сообщение

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Используйте штатный WorkShop.
Создайте новый ресурс, но обязательно укажите 32 бита, скопируйте в него содержимое старого ресурса (16-битного) и запишитесь.
А потом просто удалите старый ресурс и запишите вместо него новый, 32-битный.

И потом, эта ваша тема уже была всесторонне "обсосана" в
http://www.programmersforum.ru/showthread.php?t=12189
Скажите пожалуйста как можно перевести 16 битный файл в 32-х. какая версия WorkShop нужна для осуществления данной операции. И если в *.rc файле несколько файлов, то нужно после первого поставить символ ";" и перейти на другую строку?
Shouldercannon вне форума Ответить с цитированием
Старый 20.02.2008, 20:44   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Скажите пожалуйста как можно перевести 16 битный файл в 32-х. какая версия WorkShop нужна для осуществления данной операции. И если в *.rc файле несколько файлов, то нужно после первого поставить символ ";" и перейти на другую строку?
Штатный WorkShop поддерживает 16-битные ресурсы для совместимоти "вниз".
*.rc файл состоит не из файлов, а из ресурсов, на один из которых и "ругается" линковщик.
Создайте в WorkShop новый файл ресурсов, но сначала сразу установите в свойствах WorkShop 32-битную разрядность (по умолчанию он норовит почему-то создать 16-разрядный) и в нем создайте такие же ресурсы, строго соблюдая тип и имя. А само содержимое ресурсов скопируете из второго запущенного экземпляра WorkShop, в котором открыт старый файл ресурсов.

Последний раз редактировалось mihali4; 20.02.2008 в 20:49.
mihali4 вне форума Ответить с цитированием
Старый 04.03.2008, 00:40   #9
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Как загрузить AVI из ресурса (сидит в EXE)?
Shouldercannon вне форума Ответить с цитированием
Старый 04.03.2008, 09:08   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Все что вам нужно это знать типа ресурса и его имя. Чтобы загрузить в TStream допустим вам подойдет и TResourceStream
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать файл с ресурсами? PONKA Общие вопросы Delphi 5 25.04.2008 21:08
Помогите с ресурсами Dude_first Общие вопросы Delphi 1 11.09.2007 16:24