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.
DBGrid den Listbox a Veri Çekme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: DBGrid den Listbox a Veri Çekme
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.
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.
-
- Üye
- Mesajlar: 13
- Kayıt: 30 Oca 2021 10:55
Re: DBGrid den Listbox a Veri Çekme
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
Re: DBGrid den Listbox a Veri Çekme
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.
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;
-
- Üye
- Mesajlar: 13
- Kayıt: 30 Oca 2021 10:55
Re: DBGrid den Listbox a Veri Çekme
Çok Teşekkür Ediyorum.