İmage nesnesine yüklenen resmi hafızadan silmek

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:

İmage nesnesine yüklenen resmi hafızadan silmek

Mesaj gönderen AliRiza »

Arkadaşlar image nesnesine queryden gelen veriye göre resim yüklüyorum.İmage nesnesini gizledim..

Kod: Tümünü seç

procedure TForm1.sorgulaClick(Sender: TObject);
begin
adoquery1.SQL.Clear;
adoquery1.Close;
adoquery1.SQL.Add('select * from etiket where ntno='+QuotedStr(edit1.Text));
adoquery1.Open;
 if   FileSearch(adoquery1.fieldbyname('resim').AsString+'.bmp',way2)<>'' then
begin
image1.Picture.LoadFromFile(way2+adoquery1.fieldbyname('resim').asstring+'.bmp');
(frReport2.FindObject('Picture1') as TfrPictureview).Picture.Assign(image1.Picture);
end,

Şöyle problemim var.Arama yaptığımda veritabanında resim varsa yüklüyor.Her aramada resim varsa uygun resim geliyor..Veritabanında eğer resim yoksa bir önceki resmi image nesnesine yüklüyor.
Resmin var olup olmadığını kontrol ettiriyorum ama aynı problem yine devam ediyor.
Burada problemin çözüm yolu image nesnesini boşaltmak gibi duruyor.

Yüklemeden image1.free yapıyorum access violation veriyor,destroy yapıyorum yine aynı problem..
Arkadaşlar bu konuda yardımınıza ihtiyacım var..
Yardımlarınızı bekliyorum..
Bilginin efendisi olmak için çalışmanın uşağı olmak şarttır...
BALZAC
Bana bir harf öğretenin kulu kölesi olurum..
HZ.ALİ
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Merhaba

Free ve Destory bellekten componenti sil demek... Dolayısı ile bellekten silinen bir nesneye bilgi atmak istiyorsunuzki bu da accsess violation hatası verir... Yani olmayan bir şey demek...

Free ve Destroy yerine

Kod: Tümünü seç

image1.Visible:=False;
image1.Picture:=nil;
image1.Visible:=True;
yapınız...

Kolay Gelsin...
Cevapla