Delphi Yürütülebilir Dosyalara Kaynak Dosyaları Ekleme

Sesler ve animasyonlar gibi multimedya dosyalarını kullanan oyunlar ve diğer uygulama türleri ya ekstra multimedya dosyalarını uygulama ile birlikte dağıtın veya dosyaları yürütülebilir.

Uygulamanızın kullanımı için ayrı dosyalar dağıtmak yerine, ham verileri uygulamanıza kaynak olarak ekleyebilirsiniz. Ardından, gerektiğinde verileri uygulamanızdan alabilirsiniz. Bu teknik genellikle daha arzu edilir, çünkü başkalarının bu eklenti dosyalarını manipüle etmesini engelleyebilir.

Bu makale size gösterecek ses dosyalarını, video klipleri, animasyonları ve daha genel olarak her türlü ikili dosyayı bir Delphi çalıştırıcısına nasıl yerleştirir (ve kullanır). En genel amaç için, MP3 dosyası içinde Delphi exe.

Kaynak Dosyaları (.RES)

İçinde "Kaynak Dosyaları Kolaylaştırıldı"makalesinde, bitmap'lerin, simgelerin ve imleçleri kaynaklardan. Bu makalede belirtildiği gibi, bu tür dosyalardan oluşan kaynakları oluşturmak ve düzenlemek için Resim Düzenleyici'yi kullanabiliriz. Şimdi, çeşitli (ikili) dosyaları bir Delphi yürütülebilir dosyasında saklamakla ilgilendiğimizde, kaynak komut dosyası dosyaları (.rc) ile uğraşmak zorunda kalacağız.

instagram viewer
Borland Kaynak Derleyici aracı ve diğer.

Yürütülebilir dosyaya birkaç ikili dosya eklemek 5 adımdan oluşur:

  1. Bir exe'ye koymak istediğiniz tüm dosyaları oluşturun ve / veya toplayın.
  2. Uygulamanız tarafından kullanılan kaynakları tanımlayan bir kaynak komut dosyası (.rc) oluşturun,
  3. Bir kaynak dosyası (.res) oluşturmak için kaynak komut dosyası (.rc) dosyasını derleyin,
  4. Derlenen kaynak dosyasını uygulamanın yürütülebilir dosyasına bağlayın,
  5. Bireysel kaynak öğesini kullanın.

İlk adım basit olmalı, çalıştırılabilir dosyasında ne tür dosyaları saklamak istediğinize karar vermelisiniz. Örneğin, bir .ani animasyonu ve bir .mp3 şarkısı olmak üzere iki .wav şarkısı saklayacağız.

Devam etmeden önce, kaynaklarla çalışırken karşılaşılan sınırlamalarla ilgili birkaç önemli ifade aşağıdadır:

  • Kaynakları yüklemek ve boşaltmak zaman alıcı bir işlem değildir. Kaynaklar, uygulamalar yürütülebilir dosyasının bir parçasıdır ve uygulama çalışırken aynı zamanda yüklenir.
  • Kaynakları yüklerken / boşaltırken tüm (boş) bellek kullanılabilir. Başka bir deyişle, aynı anda yüklenen kaynak sayısında sınır yoktur.
  • Elbette, kaynak dosyaları yürütülebilir dosyanın iki katı büyüklüğünde. Daha küçük yürütülebilir dosyalar istiyorsanız, projenizin kaynaklarını ve parçalarını bir dinamik bağlantı kitaplığı (DLL) ya da daha fazlası özel varyasyon.

Şimdi kaynakları tanımlayan bir dosyanın nasıl oluşturulacağını görelim.

Kaynak Komut Dosyası Oluşturma (.RC)

Kaynak komut dosyası, kaynakları listeleyen .rc uzantılı basit bir metin dosyasıdır. Komut dosyası şu biçimde:

ResName1 ResTYPE1 ResFileName1
ResName2 ResTYPE2 ResFileName2
...
ResNameX ResTYPEX ResFileNameX
...

RexName kaynağı tanımlayan benzersiz bir ad veya tam sayı değeri (ID) belirtir. ResType kaynağın türünü ve ResFileName kaynak dosyasının tam yolu ve dosya adıdır.

Yeni bir kaynak komut dosyası oluşturmak için aşağıdakileri yapmanız yeterlidir:

  1. Proje dizininizde yeni bir metin dosyası oluşturun.
  2. AboutDelphi.rc olarak yeniden adlandırın.

AboutDelphi.rc dosyasında aşağıdaki satırlara sahip olun:

Clock WAVE "c: \ mysounds \ projects \ clock.wav"
MailBeep WAVE "c: \ windows \ media \ newmail.wav"
Cool AVI Instagram Hesabındaki Resim ve Videoları cool.avi
Intro RCDATA Instagram Hesabındaki Resim ve Videoları introsong.mp3

Komut dosyası basitçe kaynakları tanımlar. Verilen biçimi izleyerek AboutDelphi.rc betiği bir .avi animasyonu ve bir .mp3 şarkısı olmak üzere iki .wav dosyası listeler. Bir .rc dosyasındaki tüm ifadeler, belirli bir kaynak için tanımlayıcı bir ad, tür ve dosya adı ilişkilendirir. Yaklaşık bir düzine önceden tanımlanmış kaynak türü vardır. Bunlar simgeler, bitmapler, imleçler, animasyonlar, şarkılar vb. RCDATA genel veri kaynaklarını tanımlar. RCDATA, bir uygulama için ham veri kaynağı eklemenize izin verir. Ham veri kaynakları, ikili verilerin doğrudan yürütülebilir dosyaya eklenmesine izin verir. Örneğin, yukarıdaki RCDATA ifadesi uygulamanın ikili kaynağına Giriş adını verir ve söz konusu MP3 dosyası için şarkıyı içeren introsong.mp3 dosyasını belirtir.

Not: .rc dosyanızda listelediğiniz tüm kaynakların kullanılabilir olduğundan emin olun. Dosyalar projeler dizininizin içindeyse, tam dosya adını eklemeniz gerekmez. .Rc dosyamda .wav şarkıları diskte * bir yerde * bulunur ve hem animasyon hem de MP3 şarkısı projenin dizininde bulunur.

Kaynak Dosya Oluşturma (.RES)

Kaynak komut dosyası dosyasında tanımlanan kaynakları kullanmak için, Borland'ın Kaynak Derleyicisi ile birlikte bir .res dosyasına derlemeliyiz. Kaynak derleyicisi, kaynak komut dosyası içeriğine göre yeni bir dosya oluşturur. Bu dosya genellikle .res uzantısına sahiptir. Delphi bağlayıcısı daha sonra .res dosyasını bir kaynak nesne dosyasına yeniden biçimlendirecek ve daha sonra uygulamanın yürütülebilir dosyasına bağlayacaktır.

Borland'ın Kaynak Derleyici komut satırı aracı Delphi Bin dizininde bulunur. Adı BRCC32.exe'dir. Komut istemine gidip brcc32 yazıp Enter tuşuna basın. Delphi \ Bin dizini Yolunuzda olduğundan Brcc32 derleyicisi çağrılır ve kullanım yardımını görüntüler (parametresiz çağrıldığı için).

AboutDelphi.rc dosyasını bir .res dosyasına derlemek için, komut isteminde (projeler dizininde) bu komutu yürütün:

BRCC32 AboutDelphi. RC

Varsayılan olarak, kaynakları derlerken, BRCC32 derlenen kaynak (.RES) dosyasını .RC dosyasının taban adıyla adlandırır ve .RC dosyasıyla aynı dizine yerleştirir.

".RES" uzantısına sahip olduğu ve uzantısız dosya adı herhangi bir birim veya proje dosya adıyla aynı olmadığı sürece, kaynak dosyayı istediğiniz herhangi bir adla adlandırabilirsiniz. Varsayılan olarak, bir uygulamada derlenen her Delphi projesinin proje dosyasıyla aynı ada ancak .RES uzantılı bir kaynak dosyasına sahip olması önemlidir. Dosyayı proje dosyanızla aynı dizine kaydetmek en iyisidir.

Kaynakların Yürütülebilir Dosyalara Dahil Edilmesi / Bağlanması

.RES dosyası yürütülebilir dosyaya bağlandıktan sonra uygulama, kaynaklarını çalışma zamanında gerektiği gibi yükleyebilir. Kaynağı gerçekten kullanmak için birkaç Windows API çağrısı yapmanız gerekir.

Makaleyi takip etmek için yeni bir Delphi projesine ihtiyacınız olacak. boş form (varsayılan yeni proje). Tabii ki {$ R AboutDelphi ekleyin. Ana formun birimine ilişkin yönerge. Nihayet kaynakların bir Delphi uygulamasında nasıl kullanılacağını görmenin zamanı geldi. Yukarıda belirtildiği gibi, bir exe dosyası içinde depolanan kaynakları kullanmak için API ile uğraşmak zorundayız. Ancak, Delphi yardım dosyalarında "kaynak" etkinleştirilmiş çeşitli yöntemler bulunabilir.

Örneğin, LoadFromResourceName TBitmap nesnesinin yöntemi. Bu yöntem belirtilen bitmap kaynağını ayıklar ve TBitmap nesnesini atar. LoadBitmap API çağrısının yaptığı tam olarak * budur. Her zaman olduğu gibi Delphi ihtiyaçlarınızı daha iyi karşılayacak bir API işlev çağrısı geliştirmiştir.

Şimdi, TMediaPlayer bileşenini bir forma ekleyin (name: MediaPlayer1) ve bir TButton (Button2) ekleyin. OnClick etkinliğinin şöyle görünmesine izin verin:

Küçük bir sorun *, uygulamanın bir kullanıcı makinesinde bir MP3 şarkısı oluşturmasıdır. Uygulama sonlandırılmadan önce bu dosyayı silen bir kod ekleyebilirsiniz.

Ayıklanıyor *???

Tabii ki, her ikili dosya türü RCDATA türü olarak saklanabilir. TRsourceStream bu tür bir dosyayı yürütülebilir dosyadan çıkarmamıza yardımcı olmak için özel olarak tasarlanmıştır. Olasılıklar sınırsızdır: Bir exe içindeki HTML, exe'deki EXE, bir exe'deki boş veritabanı vb.

instagram story viewer