Resimleri res dosyasına gömme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
AliRiza
Üye
Mesajlar: 172
Kayıt: 24 Kas 2004 10:57
Konum: İstanbul/Avcılar
İletişim:

Resimleri res dosyasına gömme

Mesaj gönderen AliRiza »

Arkadaşlar daha önceden hüseyin abinin bahsettiği metodu kullanarak dosyaları gömüyorum.
Brcc32.exe dosyasını bir klasöre kopyalayıp o klasöre 4000 -5000 civarında resmi atıyorum.Daha sonra
bir rc dosyası oluşturup rc dosyasında
1 RCDATA image001.jpg

tek tek belirtiyorum.
Buna göre msdosta attığım dizine geçip
brcc32 resimler.rc dediğimde res dosyası oluşuyor.
Benim şöyle bir problemim var.Gömdüğüm dosyalarıda aşağıdaki kodla çağırıyorum.
Gömdüğüm bu resimleri çağırırken web browser bileşeninde html sayfasının ismini aldırıyorum.Ona göre aralık değerlerini başka procedure'de akdırıyorum.Buna göre başarılı bir biçimde istediğim işlemi gerçekleştirdim.Ancak html sayfalarına resim eklemem gerekti.Resim ekleyip yeniden farklı isimle bir res dosyası derleyip bunu implemantation altında çağırdığımda
too many resource handle diye bir hata alıyorum.Dosyanın ismini önceki res dosyasını verdiğimde dosya benim sonradan derlediğim farklı dosya olmasına rağmen programda eski res'i görüyor.Eski res dosyasını sildim.Yine aynı problemle karşılaşıyorum..

Kod: Tümünü seç

Procedure Tform2.loadjpegdromexe;
for ri:=baslangic to bitis do
     begin
      ResStream := TResourceStream.CreateFromID(HInstance, ri, RT_RCDATA);
      MyJPG.LoadFromStream(ResStream); // What!? Yes, that easy!
       if y<10 then
       begin
       cresim:='image00'+inttostr(y)+'.jpg';
       end;
       if (y>10) and (y<100) then
       begin
        cresim:='image0'+inttostr(y)+'.jpg';
       end;
       if y>100 then
       begin
         cresim:='image0'+inttostr(y)+'.jpg';
        end;
      y:=y+1;

      //Canvas.Draw(12,12,MyJPG); // draw it to see if it really worked!
      myjpg.SaveToFile(eddir.Text+son2+'\'+cresim);
    end;
     finally
     MyJPG.Free;
     ResStream.Free;
  end;
end;  // procedure
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
ertug
Üye
Mesajlar: 82
Kayıt: 10 Ara 2004 05:41

Mesaj gönderen ertug »

Merhaba.

Gönderdiğiniz kod eksik olduğundan sadece tahmin yürütebilirim. Ancak iyi bir tahminim var. :D

For döngüsü içerisinde ResStream yaratıyorsunuz. Bunu "Free" ettiğiniz ye de döngü içerisinde olmalı. Sanırım siz yanlışlıkla döngü dışına almışsınız. Bu yüzden de sisteminizde boş Handle bırakmıyorsunuz :roll:

Eğer bu değilse kodun tamamını gönderiniz ve işletim sisteminizi belirtiniz.

Ertuğ Kaya
Cevapla