DBGrid den Listbox a Veri Çekme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mkucuktepe
Üye
Mesajlar: 13
Kayıt: 30 Oca 2021 10:55

DBGrid den Listbox a Veri Çekme

Mesaj gönderen mkucuktepe »

Merhaba arkadaşlar;
Sitede aradım ama bulamadım. DBGrid den işaretlenmiş satırların herhangi bir hücresini listbox a nasıl aktarabilirim acaba ? Teşekkürler.
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: DBGrid den Listbox a Veri Çekme

Mesaj gönderen ertank »

Merhaba,

DBGrid normalde "işaretleme" imaknı sunmaz. Sizin "işaretlenmiş satırlar" ile kastettiğiniz nedir? Hangi DBGrid bileşenini kullanıyorsunuz?

Çok genel olarak, DBGrid bir TDataSet'e bağlıdır. Bu TDataSet içinde ilk kayıttan son kayıta kadar tek tek kayıtları inceleyip işaretli ise listbox nesnesine hangi kolon bilgisini okumak istiyor iseniz aktarmanız yeterli olacaktır. Bu işlemi yapmadan önce TDataSet.DisableControls ve işlem sonunda da TDataSet.EnableControls kullanmanız genelde performans arttırmak için tavsiye edilir.
mkucuktepe
Üye
Mesajlar: 13
Kayıt: 30 Oca 2021 10:55

Re: DBGrid den Listbox a Veri Çekme

Mesaj gönderen mkucuktepe »

Cevap için teşekkür ederim. Ben TDBGrid multiselect özelliğini true yaparsan çoklu seçimi açtım fakat bu birden fazla olan seçimleri tespit edip, istenilen kolondan listbox a aktarmak istiyorum
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: DBGrid den Listbox a Veri Çekme

Mesaj gönderen ertank »

Daha önce bu özelliği yoktu DBGird nesnesinin. Yeni sürümlerden birinde eklenmiş olmalı. Aşağıdaki şekilde bir kod kullanarak istediğiniz kolona ait veriyi okuyabilirsiniz. Örnek kod ekranda Memo1 adında bir TMemo nesnesi gerektiriyor. Siz istediğiniz şekilde değiştirebilirsiniz.

Seçili kayıtlar TBookmark şeklinde saklanıyor. İstisnai durumlarda GotoBookmark() prosedürü hata verebilir. Aşağıdaki kod içinde hata durumu örnek olması açısından kontrol edilmiştir.

Kod: Tümünü seç

procedure TForm2.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  DBGrid1.DataSource.DataSet.DisableControls();
  try
    for I := 0 to DBGrid1.SelectedRows.Count-1 do
    begin
      try
        DBGrid1.DataSource.DataSet.GotoBookmark(DBGrid1.SelectedRows[I]);
        Memo1.Lines.Add(I.ToString() + ': ' + DBGrid1.DataSource.DataSet.Fields[0].AsString);
      except
        on E: Exception do
        begin
          Memo1.Lines.Add('Seçili kayıt bulunamadı: indeks no: ' + I.ToString() + ', Hata: ' + E.Message);
        end;
      end;
    end;
  finally
    DBGrid1.DataSource.DataSet.EnableControls();
  end;
end;
mkucuktepe
Üye
Mesajlar: 13
Kayıt: 30 Oca 2021 10:55

Re: DBGrid den Listbox a Veri Çekme

Mesaj gönderen mkucuktepe »

Çok Teşekkür Ediyorum.
Cevapla