Create edilen image

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
Dostk
Üye
Mesajlar: 144
Kayıt: 22 Ağu 2015 12:21

Create edilen image

Mesaj gönderen Dostk »

Merhaba,

Databasede bulunan resimleri ScrollBoxsa Create ediyorum. aradan herhangi bir resmi sildiğimde, resimleri yeniden ScrollBoxsa Create yapmam gerek fakat Create edilen TImageleri ScrollBoxdan bir türlü temizleyemiyorum bu konuda yardımlarınızı rica ederim.

Kod: Tümünü seç

    while Not Eof do
    begin
      With TImage.Create(Nil) do
      begin
        Bitmap.LoadFromFile(FieldByName('KUCUK').AsString);
        OnClick := ImageOrtakClick;
        Cursor := crHandPoint;
        Tag := FieldByName('ID').AsInteger;
        Align := TAlignLayout.Top;
        Margins.Top := 1;
        Margins.Bottom := 0;
        Margins.Left := 1;
        Margins.Right := 1;
        Parent := ScrollBoxImageList;
        Next;
      end;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := ScrollBox1.ComponentCount - 1 downto 0 do
    if ScrollBox1.Components[i] is TImage then
      TImage(ScrollBox1.Components[i]).Free;
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Create edilen image

Mesaj gönderen mrmarman »

Merhaba.

Kod: Tümünü seç

      With TImage.Create(Nil) do
Satırında TImage nesnesinin Owner bilgisini Application'a vermişsiniz ancak ScrollBoxImageList içinde arıyorsunuz.
Hatta üstüne üstlük örnekte sanırım başka bir unit üzerinde deneme yapıyorsunuz ScrollBox1 üzerinden yürümeye çalışıyorsunuz. :!:

Yapacağınız iş basit.

Kod: Tümünü seç

      With TImage.Create(ScrollBoxImageList) do
şeklinde Owner olarak ScrollBoxImageList'i refere edin. Sorgulamada da hiç TImage mi değil mi diye sormayın. TAG değeri OrtakImage TAG değerine eş olanı FREE edin.

OnClik olayındaki kod aşağıdakine benzer olduğunu varsayıyorum.

Kod: Tümünü seç

procedure TForm1.ImageOrtakClick(Sender: TObject);
begin
  ImageOrtak.Picture.Assign( TImage(Sender).Picture );
  ImageOrtak.Tag := TImage(Sender).Tag;
end;
Dolayısıyla SİL butonu kodu da şu şekilde oluyor.

Kod: Tümünü seç

var
  i: Integer;
begin
  if ImageOrtak.Tag > 0 then begin
    for i := ScrollBoxImageList.ComponentCount - 1 downto 0 do
      if ScrollBoxImageList.Components[i].Tag =  ImageOrtak.Tag
        then ScrollBoxImageList.Components[i].Free;
  end;
end;
Başarılar
Resim
Resim ....Resim
Kullanıcı avatarı
Dostk
Üye
Mesajlar: 144
Kayıt: 22 Ağu 2015 12:21

Re: Create edilen image

Mesaj gönderen Dostk »

Hocam çok teşekkür ederim. Hakkınızı helal edin, sizi tekrar aramızda görmekten mutlu oldum.
Cevapla