Од битмапа до икона до курсора до низова таблица, сваки Виндовс програм користи ресурсе. Ресурси су они елементи програма који подржавају програм, али нису извршни код. У овом чланку ћемо проћи кроз неке примере употребе битних слика, икона и курсора из ресурса.
Локација ресурса
Постављање ресурса у .еке датотеку има два главна предности:
- Ресурсима се може приступити брже, јер је потребно мање времена за проналажење ресурса у извршној датотеци, него што је потребно за његово учитавање из датотеке диска.
- Програмска датотека и ресурси могу се налазити у једној јединици (.еке датотека) без потребе за пуно подржаних датотека.
Имаге Едитор
Пре свега, морамо да створимо датотеку ресурса. Подразумевано проширење за датотеке са ресурсима је.РЕС. Фајлови ресурса могу се креирати помоћу Делпхијевог уређивача слика.
Можете именовати датотеку ресурса све што желите, све док има екстензију ".РЕС", а име датотеке без проширења није исто као и било која јединица датотеке или пројекта. Ово је важно, јер, по дефаулту, сваки
Делпхи пројекат која се компилира у апликацију, садржи датотеку ресурса са истим називом као датотеку пројекта, али са екстензијом ".РЕС". Најбоље је да датотеку сачувате у истом директоријуму као и датотеку вашег пројекта.Укључивање ресурса у апликације
Да бисмо приступили нашој сопственој датотеци ресурса, морамо рећи Делпхи-у да повеже нашу датотеку ресурса са нашом апликацијом. Ово се постиже додавањем упутства компајлера изворном коду. Ова директива мора одмах да следи директиву обрасца, као што је следећа:
{$ Р * .ДФМ}
{$ Р ДПАБОУТ.РЕС}
Немојте случајно избрисати део {$ Р * .ДФМ}, јер ово је линија кода која каже Делпхију да се повеже у визуелном делу форме. Када одаберете битмапе за дугмад за брзину, компоненте слике или компоненте дугмета, Делпхи укључује датотеку битмапе коју сте одабрали као део ресурса обрасца. Делпхи изолира елементе вашег корисничког интерфејса у .ДФМ датотеку.
Да бисте заиста користили ресурс, морате их направити неколико Виндовс АПИ позиви. Битмапе, курсори и иконе сачуване у РЕС датотекама могу се пронаћи помоћу АПИ функција ЛоадБитмап, ЛоадЦурсор, и ЛоадИцон редом.
Слике у ресурсима
Први пример показује како учитати битмапу спремљену као ресурс и приказати је у ТИмаге саставни део.
процедура ТфрМаин.бтнЦанвасПиц (Пошиљалац: ТОбјецт);
вар бБитмап: ТБитмап;
започети
бБитмап: = ТБитмап. Креирај;
покушати
бБитмап. Ручка: = ЛоадБитмап (хИнстанце, 'АТХЕНА');
Имаге1.Видтх: = бБитмап. Ширина;
Имаге1.Хеигхт: = бБитмап. Висина;
Имаге1.Цанвас. Цртање (0,0, бБитмап);
напокон
бБитмап. Бесплатно;
крај;
крај;
Напомена: Ако битмапа коју треба учитати није у датотеци ресурса, програм ће се и даље покренути, једноставно неће приказати битмап. Ову ситуацију се може избећи тестирањем да ли се види да ли бБитмап. Ручка је нула након позива ЛоадБитмап () и предузимање одговарајућих корака. Тхе пробај / коначно део у претходном коду не решава овај проблем, овде је само да се осигура да је бБитмап уништен и да се ослободи повезана меморија.
Други начин на који можемо да прикажемо битмап из ресурса је следећи:
процедура ТфрМаин.бтнЛоадПицЦлицк (Пошиљалац: ТОбјецт);
започети
Слика1.Слика. Битмап.
ЛоадФромРесоурцеНаме (хИнстанце, 'ЕАРТХ');
крај;
Курсори у ресурсима
Екран. Курсори [] је низ курсора које испоручује Делпхи. Употребом датотека са ресурсима можемо додати прилагођене показиваче у својство Цурсорс. Ако не желимо да заменимо ниједан подразумевани, најбоља стратегија је употреба бројева курсора почевши од 1.
процедура ТфрМаин.бтнУсеЦурсорЦлицк (Пошиљалац: ТОбјецт);
цонст НевЦурсор = 1;
започети
Екран. Курсори [НевЦурсор]: =
ЛоадЦурсор (хИнстанце, 'ЦУРХАНД');
Имаге1.Цурсор: = НевЦурсор;
крај;
Иконе у изворима
Ако погледамо Делфи Опције пројекта-апликација подешавања, можемо пронаћи да Делпхи испоручује задану икону за пројекат. Ова икона представља апликацију у програму Виндовс Екплорер и када је апликација сведена на минимум. То можемо лако променити кликом на дугме 'Учитај икону'.
Ако желимо, на пример, анимирати икону програма када је програм минимизиран, следећи код ће урадити посао.
За анимацију нам треба а ТТимер компонента на обрасцу. Код учитава две иконе из датотеке ресурса у низ од ТИцон предмети; овај низ треба навести у јавном делу главног обрасца. Требаће нам НрИцо, то је тип Интегер променљива, проглашено у јавни део. Тхе НрИцо користи се за праћење следеће иконе за приказивање.
јавни
нрИцо: Интегер;
МинИцон: низ [0..1] ТИцон-а;
...
процедура ТфрМаин. ФормЦреате (пошиљалац: ТОбјецт);
започети
МинИцон [0]: = ТИцон. Креирај;
МинИцон [1]: = ТИцон. Креирај;
МинИцон [0] .Хандле: = ЛоадИцон (хИнстанце, 'ИЦООК');
МинИцон [1]. Рука: = ЛоадИцон (хИнстанце, 'ИЦОФОЛД');
НрИцо: = 0;
Тимер1.Интервал: = 200;
крај;
...
процедура ТфрМаин. Тимер1Тимер (пошиљалац: ТОбјецт);
бегиниф ИсИцониц (апликација. Ручка) ондазапочети
НрИцо: = (НрИцо + 1) мод 2;
Апликација. Икона: = МинИцон [НрИцо];
крај;
крај;
...
процедура ТфрМаин. ФормДестрои (пошиљалац: ТОбјецт);
започети
МинИцон [0] .Фрее;
МинИцон [1] .Фрее;
крај;
У Тимер1.ОнТимер менаџер догађаја, ИсМинимизед функција се користи да видимо да ли морамо анимирати нашу главну икону или не. Бољи начин да се то постигне би било снимање дугмића за максимизирање / минимизирање и тада активирање.
Завршне речи
Можемо смјестити било шта (добро, не све) у датотеке са ресурсима. Овај чланак вам је показао како се користе ресурси за употребу / приказивање битмапе, курсора или иконе у вашој апликацији Делпхи.
Напомена: Када спремимо Делпхи пројекат на диск, Делпхи аутоматски креира једну .РЕС датотеку која има исти назив као и пројекат (ако ништа друго, главна икона пројекта је унутра). Иако можемо изменити ову датотеку ресурса, ово није препоручљиво.