Yeni

Delphi Resurs Fayllarını necə istifadə edir

Delphi Resurs Fayllarını necə istifadə edir

Bit nöqtələrindən nişanlara, kursorlardan sətir masalarına qədər hər Windows proqramı resurslardan istifadə edir.Resurslar proqramı dəstəkləyən, lakin yerinə yetirilməyən kod olan bir elementdir. Bu yazıda, bitmap, nişanlar və kursorların mənbələrdən istifadəsinə dair bəzi nümunələri nəzərdən keçirəcəyik.

Resursların yeri

.Exe faylında resursların yerləşdirilməsinin iki əsas varüstünlükləri:

  • Resurslara daha tez daxil olmaq mümkündür, çünki bir fayl mənbəyini bir disk sənədindən yükləmək üçün olduğundan daha az vaxt tələb olunur.
  • Proqram faylı və mənbələri çox sayda dəstəkləyici sənəd tələb etmədən vahid bir hissədə (.exe faylı) ola bilər.

Şəkil Redaktoru

Əvvəlcə bir qaynaq faylı yaratmalıyıq. Resurs sənədləri üçün standart uzantısıdır.RES. Resurs sənədləri Delphi'nin Image Redaktoru ilə yaradıla bilər.

".RES" uzantısına sahib olduqda və fayl uzantısı olmadan fayl adı hər hansı bir bölmə və ya layihə adı ilə eyni olmadığı halda istədiyiniz hər hansı bir şeyi adlandıra bilərsiniz. Bu vacibdir, çünki bir qayda olaraq bir tətbiqə daxil olan hər Delphi layihəsində layihə faylı ilə eyni adı olan bir qaynaq faylı var, ancaq ".RES" uzantısı ilə. Faylı layihə faylı ilə eyni qovluğa saxlamaq ən yaxşısıdır.

Proqramlarda Resurslar daxil olmaqla

Öz resurs faylı əldə etmək üçün Delphi'yə məlumat faylımızı tətbiqimizlə əlaqələndirməyi söyləməliyik. Bu mənbə koduna tərtibedici bir təlimat əlavə etməklə həyata keçirilir. Bu təlimat aşağıdakı kimi forma direktivinə dərhal əməl etməlidir:

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

Təsadüfən {$ R * .DFM} hissəsini silməyin, çünki bu Delphi'nin formanın vizual hissəsində əlaqələndirməsini söyləyən kod xəttidir. Sürət düymələri, Şəkil komponentləri və ya Düymə komponentləri üçün bit xəritələrini seçdiyiniz zaman Delphi, forma mənbəyinin bir hissəsi olaraq seçdiyiniz bit xəritəsi sənədini özündə birləşdirir. Delphi istifadəçi interfeysi elementlərinizi .DFM faylına ayırır.

Resursdan istifadə etmək üçün bir neçə Windows API çağırışı etməlisiniz. Bit sənədlərində, kursorlarda və RES sənədlərində saxlanılan nişanlar API funksiyalarından istifadə etməklə əldə edilə bilər LoadBitmap, LoadCursor,Yükləyin müvafiq olaraq.

Resurslarda şəkillər

Birinci nümunə bir qaynaq olaraq saxlanılan bir bitmapı necə yüklədiyinizi və onu necə göstərəcəyinizi göstərir TImage komponent.

proseduru TfrMain.btnCanvasPic (Göndərən: TObject);
var bBitmap: TBitmap;
başlamaq
bBitmap: = TBitmap.Create;
cəhd edin
bBitmap.Handle: = LoadBitmap (hInstance, 'ATHENA');
Image1.Width: = bBitmap.Width;
Image1.Hight: = bBitmap.Height;
Şəkil1. Canvas.Draw (0,0, bBitmap);
nəhayət
bBitmap. Pulsuz;
son;
son;

Qeyd: Yüklənəcək bitmap resurs mənbəyində deyilsə, proqram hələ də işləyəcək, sadəcə bit xəritəsi göstərməyəcək. Bu vəziyyətin olub olmadığını yoxlamaq üçün sınaqdan keçirilə bilərbBitmap.Handle bir zəngdən sonra sıfırdırLoadBitmap () və müvafiq addımlar atmaq. Əvvəlki kodun cəhd / nəhayət hissəsi bu problemi həll etmir, yalnız bBitmapın məhv edildiyi və əlaqəli yaddaşın sərbəst buraxıldığına əmin olmaq üçün buradadır.

Bir qaynaqdan bit xəritəsi görüntüləmək üçün istifadə edə biləcəyimiz başqa bir yol aşağıdakı kimidir:

proseduru TfrMain.btnLoadPicClick (Göndərən: TObject);
başlamaq
Şəkil1.Şəkil.Bitmap.
LoadFromResourceName (hInstance, 'EARTH');
son;

Resurslarda kursorlar

Screen.Cursors Delphi tərəfindən təmin edilən bir sıra kursordur. Resurs sənədlərindən istifadə edərək, Cursors xüsusiyyətinə xüsusi kursor əlavə edə bilərik. Defoltlardan hər hansı birini əvəz etmək istəməsək, ən yaxşı strategiya 1-dən başlayaraq kursor nömrələrini istifadə etməkdir.

proseduru TfrMain.btnUseCursorClick (Göndərən: TObject);
const NewCursor = 1;
başlamaq
Screen.CursorsNewCursor: =
LoadCursor (hInstance, 'CURHAND');
Image1.Cursor: = NewCursor;
son;

Resurslarda nişanlar

Delphi'yə baxsaqLayihə-Seçimlər-Tətbiq parametrləri, Delphi'nin bir layihə üçün standart simge təmin etdiyini tapa bilərik. Bu işarə Windows Explorer-də tətbiqetməni təmsil edir və tətbiq minimuma endirildikdə. Bunu "Yükləmə nişanı" düyməsini basaraq asanlıqla dəyişə bilərik.

Məsələn, əgər proqramın minimuma endirildiyi zaman proqramın simvolunu canlandırmaq istəyiriksə, onda aşağıdakı kod işi yerinə yetirəcəkdir.

Animasiya üçün bizə lazımdırTTimer bir formada komponent. Kod, resurs sənədindən bir sıra iki nişanı yükləyirTIcon obyektlər; bu serialın əsas formanın ictimai hissəsində elan edilməsi lazımdır. Bizə də ehtiyac olacaqNrIco, yəni elan edilən tam bir dəyişəndirictimai hissəsi. TheNrIco göstərmək üçün növbəti simvolu izləmək üçün istifadə olunur.

ictimai
nrIco: tam;
MinIcon: array0… TIcon'un 1;

proseduru TfrMain.FormCreate (Göndərən: TObject);
başlamaq
MinIcon0: = TIcon.Create;
MinIcon1: = TIcon.Create;
MinIcon0.Handle: = LoadIcon (hInstance, 'ICOOK');
MinIcon1.Handle: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.İnterval: = 200;
son;

proseduru TfrMain.Timer1Timer (Göndərən: TObject);
startif IsIconic (Application.Handle) sonra başlamaq
NrIco: = (NrIco + 1) mod 2;
Tətbiq.Icon: = MinIconNrIco;
son;
son;

proseduru TfrMain.FormDestroy (Göndərən: TObject);
başlamaq
MinIcon0. Pulsuz;
MinIcon1. Pulsuz;
son;

İçində Timer1.OnTimer hadisə idarəedicisi, IsMinimized funksiyamız əsas simgesimizi canlandırmağımızın lazım olub olmadığını görmək üçün istifadə olunur. Bunu həyata keçirməyin daha yaxşı bir yolu, düymələri böyütmək / kiçiltmək və hərəkət etməkdən daha yaxşı olardı.

Son sözlər

Resurs sənədlərinə hər şeyi (yaxşı deyil, hər şeyi) yerləşdirə bilərik. Bu yazı sizə Delphi tətbiqetmənizdə bit xəritəsi, kursor və ya simvolu istifadə / göstərmək üçün mənbələrdən necə istifadə edəcəyinizi göstərdi.

Qeyd: Delphi layihəsini diskdə saxladığımız zaman Delphi avtomatik olaraq layihə ilə eyni adlı bir .RES faylını yaradır (başqa bir şey yoxdursa, layihənin əsas simvolu içəridədir). Bu resurs faylı dəyişdirə bilsək də, bu məqsədəuyğun deyil.