Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Create edilen resmin detayları
#1
Merhaba; 

Database bulunan resimlerin VertScrollBox listeliyorum, listelenen resimlerden aradan bir tanesini silmek istiyorum.
seçmiş olduğum resmin databasedeki ID numarasını nasıl alabilirim?
Aradan resim sildiğim için eski listelenen resimleri nasıl temizleyebilirim?



procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  Img: TStrings;
begin
  Img := TStringList.Create;
  try
    With QIlan do
    begin
      Connection := FDConnection;
      Active := False;
      Close;
      SQL.Clear;
      SQL.Add('Select * From RESIMLER Limit 0,30');
      Prepared := True;
      Open;
      while Not Eof do
      begin
        Img.Add(FieldByName('KUCUK').AsString);
        Next;
        for I := 0 to Img.Count - 1 do
        begin
          With TImage.Create(Nil) do
          begin
            Bitmap.LoadFromFile(img[i]);
            Align := TAlignLayout.Top;
            Margins.Top := 5;
            Margins.Bottom := 5;
            Margins.Left := 5;
            Margins.Right := 5;
            Parent := VertScrollBox;
          end;
        end;
      end;
    end;
  finally
    Img.DisposeOf;
  end;
  QIlan.Close;
end;
Hayat bazen güzel olabiliyor.
Cevapla
#2
Ilgili nesneyi olusturuken tag degerine dB deki ID numarasini atabilirsiniz. Boylece secilen image I silerken bu tag degerine kullanabilirsiniz.
Ikinci sorunsuz icin benim kullandiginiz yontem tum nesneleri silip yeniden olusturmak
Cevapla
#3
(20-02-2018, Saat: 13:56)klavye Adlı Kullanıcıdan Alıntı: Ilgili nesneyi olusturuken tag degerine dB deki ID numarasini atabilirsiniz.  Boylece secilen image I silerken bu tag degerine kullanabilirsiniz.
Ikinci sorunsuz icin benim kullandiginiz yontem tum nesneleri silip yeniden oluşturmak

Taga ID noları alabiliyorum;
Fakat aradan seçip dbden sildiğim resimleri tekrar listeleme yaptığımda bir önceki resimleri temizleyemedim.
bir de databasede 5 kayıt varsa  fakat listelenen kayıt sayısı 20 küsur oluyor.


procedure TForm1.Button1Click(Sender: TObject);
begin
  Img := TStringList.Create;
  Img.Clear;
  try
    With QIlan do
    begin
      Connection := FDConnection;
      Active := False;
      Close;
      SQL.Clear;
      SQL.Add('Select * From RESIMLER Limit 0,30');
      Prepared := True;
      Open;
      while Not Eof do
      begin
        Img.Add(FieldByName('KUCUK').AsString);
        ImgDBID := FieldByName('ID').AsInteger;
        Next;
        for I := 0 to Img.Count - 1 do
        begin
          With TImage.Create(Nil) do
          begin
            Bitmap.LoadFromFile(Img[I]);
            OnClick := ImageOrtakClick;
            Cursor := crHandPoint;
            Tag := ImgDBID;
            Align := TAlignLayout.Top;
            Margins.Top := 0;
            Margins.Bottom := 0;
            Margins.Left := 1;
            Margins.Right := 1;
            Parent := VertScrollBoxResimList;
          end;
        end;
      end;
    end;
  finally
    Img.DisposeOf;
  end;
  QIlan.Close;
end;
Hayat bazen güzel olabiliyor.
Cevapla
#4
Döngü ile databasedeki tüm resimleri bir degiskene attiktan sonra o degiskendeki resimleri image bilesenine aktarin. Siz hem degiskene tablodaki resim degerlerini atmissiniz sonrada bu degiskeni ayni anda her kayit icin bastan tekrar terar yazdirmissiniz.


    while ScrollBox1.ControlCount > 0 do
    begin
      ScrollBox1.Controls[0].Free;
    end;


Bu kodla ScrollBox uzerinde olusturmus oldugunuz nesleri bosaltip sonrasinda donguyle tekrardan tum resimleri ScrollBox uzerine olusturmalisiniz. En azindan benim yaptigim yontem bu.

Deneme imkanım olmadi ama sanirim asagidaki kod isinizi gorur.


      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 := 0;
            Margins.Bottom := 0;
            Margins.Left := 1;
            Margins.Right := 1;
            Parent := VertScrollBoxResimList;
          end;

        Next;
        end;
Cevapla
#5
İlginize teşekkür ederim, vardiyalı çalıştığım için geç dönüş yapıyorum kusura bakmayın.
ScrollBox Create ile oluşturduğum imageleri bir türlü kaldıramıyorum aradan sildiğim resimler var listelemeyi yeniden yapmam lazım bunu nasıl çözebilirim?


var
 i : Integer;
begin
 for i := ScrollBox1.ComponentCount-1 downto 0 do
  Begin
    if ScrollBox1.Components[i] is TImageThen
       Tımage(ScrollBox1.Components[i]).Free
  bnd;
end;
Hayat bazen güzel olabiliyor.
Cevapla
#6
if ScrollBox1.Components[i] is TImageThen
      Tımage(ScrollBox1.Components[i]).Free

bunun yerine image kontrolu yapmadan sildirmeyi denediniz mi? Onda da aynı sekilde scrollbox uzerindeki nesneleri free etmiyor mu?
Cevapla
#7
Bu şekilde resimler var image showmessage tes ettiğimde imege yok
procedure TForm1.Button1Click(Sender: TObject);

begin
  for i := VertScrollBoxResimList.ComponentCount - 1 downto 0 do
  Begin
    if VertScrollBoxResimList.Components[i] is TImage Then
    begin
      Showmessage('var');
    end
   else
    begin
      Showmessage('yok');
    end;
  end;

end;

Bu şekilde yaptığımda eklenen imageleri temizliyor fakat tekrar listeleme yaptığımda

procedure TForm1.Button1Click(Sender: TObject);
begin
  for i := VertScrollBoxResimList.ComponentCount - 1 downto 0 do
  Begin
     TImage(VertScrollBoxResimList.Components[i]).Free;
    end;
  ResimListele(Sender);
  end;

First chance exception at $00900B10. Exception class $C0000005 with message 'access violation at 0x00900b10: read of address 0x000003f8'. Process mLists.exe (6688)
hatası alıyorum
Hayat bazen güzel olabiliyor.
Cevapla
#8
Sorunu efsane üstat mrmarman çözdü.

Çözümü Buradan bulabilirsiniz.
Hayat bazen güzel olabiliyor.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Unable to Create Process: Sistem Belirtilen yolu bulamıyor. sokratayb 3 986 24-08-2021, Saat: 15:59
Son Yorum: narkotik
  Runtime Create edilen nesnenin Parent erişim sorunu 41linea41 5 2.027 17-05-2021, Saat: 10:26
Son Yorum: ozcanm
  Çekilen resmin dosya adını almak hbilal42 10 3.673 17-03-2021, Saat: 01:27
Son Yorum: hbilal42
Sad Buton ve resmin alta kalması Atomkarınca 5 1.995 14-03-2021, Saat: 16:41
Son Yorum: Mr.X
  Yazını resmin arkasında kalması Nese 7 3.514 20-07-2020, Saat: 14:48
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi