Konuyu Değerlendir
  • 1 Oy - 4 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Lazarusta kaynak(resource) dosya kullanımı
#1
Lazarusta da delphi de olduğu gibi kaynak dosya kullanımı vardır. Sıkıntı çıkaran kısımlar windows kaynak dosyalarının linux tarafında ufak tefekte olsa uyumsuzluğunun olabilmesidir. Ancak lazarusun kendi kaynak dosya kullanım sistemini kullanırsanız hem windows hemde linux tarafında (osx tarafında da) çapraz platform uyumluluğu içinde rahatlıkla kullanabilirsiniz. Bu yazımızda lazarus-->tools dizini altındaki “lazres” uygulaması ile birden fazla raw dosyayı kaynağa gömüp kullanımını anlatmaya çalışacağız. Anlatacaklarımız hem windows hemde linux tarafında benzer şekilde uygulanabilir işlemlerdir.


İlk olarak iki tane örnek olması açısından gömeceğimiz dosyaları seçelim. Biz burada “kitap1.xlsx” çalışma kitabı ile “Dokuman1.odt” dosyasını seçtik. Bu dosyaların “lrs” uzantılı dosyasını oluşturalım. Biz bu dosyayı programımızın derlemesinde kaynak dosya olarak kullanacağız.


Linux için terminal penceresinde


Kod:
/usr/share/lazarus/1.6.4/tools$ ./lazres /home/kaynakproje/resourcedosyam.lrs /home/kaynakproje/Kitap1.xlsx /home/kaynakproje/Dokuman1.odt



windows için komut satırında

Kod:
c:\lazarus\tools\lazres.exe c:\kaynakproje\resourcedosyam.lrs c:\kaynakproje\kitap1.xlsx c:\kaynakproje\Dokuman1.odt



yazıp enterlıyoruz. Karşımıza aşağıdaki gibi bir pencere gelecek. (linux dosya sistemindeki görüntüsü aşağıdaki gibidir)

Kod:
/home/ResourceProjesi/Kitap1.xlsx ResourceName='Kitap1' Type='XLSX'
/home/ResourceProjesi/Dokuman1.odt ResourceName='Dokuman1' Type='ODT'


windows kullanıyorsanız sonuç görüntüsü şu şekilde olur;

Kod:
c:\ResourceProjesi\Kitap1.xlsx ResourceName='Kitap1' Type='XLSX'
c:\ResourceProjesi\Dokuman1.odt ResourceName='Dokuman1' Type='ODT'

Böylece nihayet iki dosyayı da içinde barındıran “resourcedosyam.lrs” kaynak dosyamızı oluşturmuş olduk.


Yukardaki işlemlerde iki dosyayı ayrı ayrı yazıp göstermek yerine dosyaların listesinin olduğu bir text dosyasını bunların yerine yazmış olsaydık yine aynı işi yapmış olurduk. Hatta bu liste gösterme şekli çok sayıda dosya olduğunda mantıklı bir işlem olacaktır.


Kod:
Lazres resourcedosyam.lrs dosyalistesi.txt



Bundan sonraki aşamada programımız içinden bilgisayarımızda istediğimiz herhangi bir yere bu iki kitap1.xlsx ve Dokuman1.odt dosyalarımızı oluşturalım.


* Lazarusu açıyoruz
* Yeni bir boş proje oluşturuyoruz.
* unit1.pas dosyasının uses kısmına “Lresources” ifadesini ekliyoruz.
* unit1.pas dosyasının en altındaki “end.” ifadesinden önce

Kod:
initialization
  {$I resourcedosyam.lrs}


ifadesini ekliyoruz.


* formun üzerine bir buton atalım ve onclick olayına aşağıdaki ifadeleri yazalım.

Kod:
procedure TForm1.Button1Click(Sender: TObject);
var
 SList: TStringList;
 Res: TLResource;
 Veri: String;
begin
  Slist:= TStringList.Create;

  Res:= LazarusResources.Find('Kitap1');
  if Res= nil then Raise Exception.Create('Kitap1 kaynakta yok');
  Slist.Add(Res.Value);
  Slist.SaveToFile('Kitap1.xlsx');

  Res:= LazarusResources.Find('Dokuman1');
  if Res= nil then Raise Exception.Create('Dokuman1 kaynakta yok');
  Slist.Add(Res.Value);
  Slist.SaveToFile('Dokuman1.odt');


  Slist.Free;
end;


Bu kod çalıştırıldığında exenin içine gömülü durumdaki 2 adet kaynak dosyasını exenin bulunduğu yere müstakil olarak oluşturur. Bunun yanında resource deki image dosyalarına erişim ve işlem yapmak daha pratiktir. Aşağıdaki kaynakta bu işlem güzel bir şekilde anlatılmıştır.

Durali Kiraz
duralikiraz.blogspot.com
06.07.2017




Kaynak:
* http://wiki.freepascal.org/Lazarus_Resources
duralikiraz.blogspot.com
Bul
Alıntı
Topic Options
Foruma Git:




Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi