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 11:21

Create edilen image

Mesaj gönderen Dostk » 25 Şub 2018 01:34

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: 4717
Kayıt: 09 Ara 2003 08:13
Konum: Ankara
İletişim:

Re: Create edilen image

Mesaj gönderen mrmarman » 25 Şub 2018 06:14

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

Kullanıcı avatarı
Dostk
Üye
Mesajlar: 144
Kayıt: 22 Ağu 2015 11:21

Re: Create edilen image

Mesaj gönderen Dostk » 26 Şub 2018 11:21

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

Cevapla