Konuyu Paylaş : facebook gplus twitter

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ı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlIlgili 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ü Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol bulabilirsiniz.
Hayat bazen güzel olabiliyor.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TButton.Create(VertScrollBox1) içerisinden TRectangle.Create(VertScrollBox1) ulaşmak webprog 5 247 16-01-2018, Saat: 15:18
Son Yorum: Fesih ARSLAN
  Create ListBoxItem Dostk 11 504 16-01-2018, Saat: 01:15
Son Yorum: Dostk



Konuyu Okuyanlar: 1 Ziyaretçi