Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

можно ли поместить bmp в dll??? [D6, Win95/98, Win2k]


reticon ©   (2003-01-27 00:59:00) 

У меня такая проблема: имеется 20 bmp-картинок (по 1М каждая).
В программе необходимо после каждого нажатия ENTER подгружать и отображать эти картинки в TImage поочереди от 1 до 20.
Пробовал просто, через LoadFromFile() - слишком много жрет памяти. Может можно как-нибудь это все дело загнать в dll и подгружать (освобождать) по необходимости. Помогите пожалуйста.


Сергей А   (2003-01-31 10:53:00) [1]

Навскидку - два варианта:
1 - засунуть их все в AVI-файл и прокручивать Delph-ишным прэером, хотя 800 кадров...
2 - сделать не BMP, а метафайлы (Word рисует именно их), а потом уже метафайлы - в DLL


reticon   (2003-01-27 12:43:00) [2]

Если читать с диска, то каждая картинка представляется отдельным файлом.
А если картинок всего 800 :-)))
Например, 80 билетов, по 10 вопрсов в каждом.
Как и где все это будет удобнее хранить?


Сергей А   (2003-01-27 06:46:00) [3]

Можно и в DLL:
Создаешь .rc файл, в котором строки:
PIC1 RCDATA "<>.bmp"
PIC2 RCDATA "<>.bmp"
...
Затем
<>\Brcc32 -f<>.res <>.rc (Эта утилитка - в Bin)
Полученный .res - файл подцепляешь к программе или к DLL
(Вообще-то насчет .jpg полностью солидарен)


Yrtimd   (2003-01-27 02:00:00) [4]

Слушай, я не в кассу совет дал. У тебя же TImage имеется. Ну, так и грузи сдиска. Памяти жрет не много. А бмпхи на жпеги поменять надо однозначно. ;[


Yrtimd   (2003-01-27 01:54:00) [5]

Ну, лучше всего, если это будут не BMP, а JPEG.
И не надо никакой DLL.
Читать с диска.

Вот пример кода:

uses JPEG;


<Form.OnCreate>

var JPG: TJPEGImage;
N: Integer;

JPG: TJPEGImage.Create;

<Form.OnKeyDown>

If Key=13 Then begin
JPG.LoadFromFile ("Picture"+IntToStr(N)+".jpg");
Inc(N);
End;

<к завершению просмотра>
JPG.Free;


Наверх

Титульная страница Поиск, карта сайта Написать письмо