Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Вниз

Resourse File 


P.   (2002-04-05 18:48) [0]

Написано:
"Создать исходный файл ресурсов, куда можно включить и поименовать требуемые файлы с расширением BMP, к примеру:
- inout BITMAP "inout.bmp"
Сохранить этот файл с расширением RC.


Кто-нибудь может пояснить, а то я нихрена не понял(что значит "создать исходный файл ресурсов" и как сохранить ОДИН файл с расширением RC, когда рисунков штук 10).
Буду очень признателен.



aus   (2002-04-05 19:09) [1]

Меню Tools - Image Editor



Юрий Зотов   (2002-04-05 21:02) [2]

1. Обычным текстовым редактором в каталоге проекта создаем файл MyRes.rc с таким текстом:

BMP1 BITMAP "С:\Path1\File1.bmp"
BMP2 BITMAP "D:\Path2\File2.bmp"

и т.д. - хоть 10 картинок, хоть 110.

2. Из командной строки Даем команду
BRCC32 MyRes.rc
и в итоге там же появляется файл MyRes.res.

3. Подключаем его к программе:
{$R MyRes.res}

И все. Теперь все картинки будут сидеть внутри самого EXE - в его ресурсах. Доступны они по именам BMP1, BMP2 и т.д.



Vcoder   (2002-04-05 21:55) [3]

Для чтения ресурса можно применить следующую процедуру:

procedure TForm1.Button1Click(Sender: TObject);
var
MyRes : TResourceStream;
begin
MyRes:=TResourceStream.Create(HInstance,"Bmp1",PChar("RT_BITMAP"));
try
Image1.Picture.Bitmap.LoadFromStream(MyRes);
finally
MyRes.Free;
end;
end;


А теперь уже фантазируй как тебе надо считывать все твои картинки: писать для каждого свою процедуру, передавать имя ресурса как параметр, создать массив... Все зависит от конкретной задачи.

PS. Кстати. У TBitmap есть функция LoadFromResourceName. Однако Image1.Picture.Bitmap.LoadFromResourceName(HInstance,"Bmp1) вызывает ошибку "ресурс не найден". Может кто знает, в чем дело?



Anatoly Podgoretsky   (2002-04-05 22:00) [4]

BMP1



Vcoder   (2002-04-06 10:47) [5]


> Anatoly Podgoretsky © (05.04.02 22:00)


??? Не понял. Что это значит?
""Bmp1" - это конечно опечатка ЗДЕСЬ, в программе написано "bmp1".



Anatoly Podgoretsky   (2002-04-06 10:52) [6]

Попробуй написать "BMP1"



P.   (2002-04-06 11:51) [7]


> 2. Из командной строки Даем команду
> BRCC32 MyRes.rc

Я набрал это в командной строке, меня кинуло на сервак этого BRCC32(прямо так и назывется) и предложили найти MeRes.rc на их сайте... :( ???



P.   (2002-04-06 12:18) [8]


> Я набрал это в командной строке, меня кинуло на сервак этого
> BRCC32(прямо так и назывется) и предложили найти MeRes.rc
> на их сайте... :( ???

Это я сделал.
SpeedButton1.Glyph.LoadFromResourceName(HInstance,"bitmap.res");
А это действительно не работает. Пишет что ресурс не найден.



sunwheel   (2002-04-06 12:33) [9]

>P. (06.04.02 11:51)
Интересный подход к созданию res файлов. :)

Имелась ввиду коммандная строка : Пуск>Выполнить> и т.д.



P.   (2002-04-06 13:25) [10]

Все эти командные строки вообще здесь ни к чему, достаточно нажать на файле(*.RC) правой кнопкой, открыть с помощью... и выбрать BRCC32.

PS А
SpeedButton1.Glyph.LoadFromResourceName(HInstance,"bitmap.res");

всё равно выдаёт ошибку.



[MC]NuClon   (2002-04-06 14:26) [11]

А не кажется ли вам, что параметры метода
LoadFromResourceName()
1) Handle ресурса (hInstance, правильно вроде)
2) ID рисунка в ресурсе (в данном случае BMP1 или BMP2



Anatoly Podgoretsky   (2002-04-06 14:32) [12]

P. (06.04.02 11:51)
Затем тебе BRCC32, у тебя же Д6
"BITMAP.RES"



Anatoly Podgoretsky   (2002-04-06 14:33) [13]

Но мне кажется ты перепутал ресурс и именем ресурсного файла, наверно все таки "BMP1"



Alex_LG   (2002-04-06 17:53) [14]


> Anatoly Podgoretsky © (06.04.02 14:32)
> P. (06.04.02 11:51)
> Затем тебе BRCC32, у тебя же Д6
> "BITMAP.RES"

а как в D6 делается?



Anatoly Podgoretsky   (2002-04-06 18:27) [15]

Alex_LG © (06.04.02 17:53)
Подключи к проекту, не знаю как в Д6 у меня нет. А в Д5 add



P.   (2002-04-06 18:45) [16]

Пффф..... :) Народ, вы меня извиниет, что я такой тупой :)
Вот есть .res, есть SpeedButton, как из ресурса извлечь картинку для этого SpeedButton, .res я уже сделал и подключил...

НУ PLZ...



Suntechnic   (2002-04-06 20:46) [17]

Ну тебе ж сказали как!? см. [MC]NuClon (06.04.02 14:26) и ответы Anatoly Podgoretsky ©



Anatoly Podgoretsky   (2002-04-06 20:50) [18]

2P. если не понял, то вот хинт, я все время указываю имя ресурса БОЛЬШИМИ буквами



Suntechnic   (2002-04-06 21:06) [19]

>Anatoly Podgoretsky © (06.04.02 20:50)
Да на самом деле можно любыми буквами. Эта ф-ция case insensitivity.



P.   (2002-04-07 15:52) [20]

Всё понятно.
Последний вопрос.
Между
BMP1 BITMAP "С:\Path1\File1.bmp"
BMP2 BITMAP "D:\Path2\File2.bmp"
ничего не надо ставить? Запятая там или точка с запятой? А то если несколько картинок он не хочет компилировать(а с одной работает).



P.   (2002-04-07 15:58) [21]

Не надо:)



Anatoly Podgoretsky   (2002-04-07 16:30) [22]

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



P.   (2002-04-07 16:42) [23]

Да это я кавычку не поставил.

ЗЫ Всем спасибо.
[MC]NuClon, тебе отдельное:)




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.75 MB
Время: 0.019 c
1-57673           ЕвгенийА              2002-04-07 13:10  2002.04.18  
Графика


3-57587           Malder                2002-03-26 18:51  2002.04.18  
НЕсовместимость D4 и D5


3-57654           Orlangur              2002-03-29 02:38  2002.04.18  
Нюансы транзакций


14-57869          dima_                 2002-03-11 13:35  2002.04.18  
Подскажите как перенести текст из Тmemo в memo ячейку таблицы...


1-57733           Сержжж                2002-04-05 08:15  2002.04.18  
Динамические массивы