DBGridde Scrollbarın Son Kayda Gitmesini Nasıl Engelleriz?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
DBGridde Scrollbarın Son Kayda Gitmesini Nasıl Engelleriz?
Arkadaşlar merhaba:
DBGridteki vertical scrollbarı yok etmeden mouse ile 1.kayıttan sonuncu kayda kadar tek harekette götürülmesini nasıl engelleyebiliriz?Yani kullanıcı scrolbardaki ok işaretlerine her tıkladığında bir kayıt ilerlemeli.Yani tek harekette son kayda gitmemeli.Acaba bu yapılabilirmi?
Teşekkürler.
Kolay Gelsin.
DBGridteki vertical scrollbarı yok etmeden mouse ile 1.kayıttan sonuncu kayda kadar tek harekette götürülmesini nasıl engelleyebiliriz?Yani kullanıcı scrolbardaki ok işaretlerine her tıkladığında bir kayıt ilerlemeli.Yani tek harekette son kayda gitmemeli.Acaba bu yapılabilirmi?
Teşekkürler.
Kolay Gelsin.
senin istediğin gibi yapmak eminim mümkündür üstadlar cevap yazarlar..ama bişeyi merak ettm hadi scrollbarla son kayda kadar gidemeyecek daha doğrusu tek tek next olacak datalar peki kullanıcı mousela dbgriddin üzerine tıklayınca nasıl olacak o zaman istediği kaydı seçebilir...dbgrid enabled=false mi yapacaksın..bu arada programın için olmazsa olmaz bir özellikse bu işlem bussinesskin componentinin dbgridinde scrolbar bottombutonclick ve topbutonclick eventsları var ama component ücretli diye biliyorum..
@serkan demişki:
Hocam dbgridte istediğini seçsin önemli değil.Ben şunun için yapmak istiyorum.Kişi DBGrid scrollbarı tutup sürüklerse eğer dataset fetch all yapıyor.Dolayısıyla kayıt sayısı belirli bir kayıdın üzerinde çıkarsa yavaşlamaya sebep oluyor.Kişiyi aradığı kayda gidebilmek için arama editlerini kullanmaya zorlamak istiyorum.Yani tek tek next ilede aradığı kaydı bulamayacağına göre aradığı kayıtla ilgili bir kelime yada harf yazarak aramaya mecbur kalacak.Yani amaç Fetch All yapmasını önlemek.ama bişeyi merak ettm hadi scrollbarla son kayda kadar gidemeyecek daha doğrusu tek tek next olacak datalar peki kullanıcı mousela dbgriddin üzerine tıklayınca nasıl olacak o zaman istediği kaydı seçebilir...dbgrid enabled=false mi yapacaksın.
hmm..hocam şöyle yapsan ..form açıldığında dbgridin bağlı olduğu dataseti kapatsan kullanıcı edite arayacağı metni veya içinde geçebilecek metni yazıp bul butonuna veya edit üzerinde enter tuşuna basınca doğal olarak queryde arama yaptığın için dataset açılacak ve bilgiler dbgridde listelenecek eğer edit.text özelliği boş ise aranılacak bir metin girin gibi mesaj versen..nasıl olur yani dbgridde select * from tablo_adi gibi bir sonucu asla göztermesen,böylece fetchall yapma şansıda kalmaz..nasıl olur..?
Select * From zaten demiyorum.Ancak diyelim ki 100 bin kayıt var.Kişi bu hareketi yaptığında tek harekette son kayda gidiyor ve dolayısıyla Fetch All yapmış oluyor.Benim amacım ise bunu engellemek.Yani scrollbarıda kullanabilsin ancak tek harekette 1.kayıttan sonuncu kayda götürmesin.Her tıklamada bir kayıt ilerlesin.
Diğer önerine gelince dataset kapalı olursa bu dediğim olay gerçekleşmez.Yani dbgrid kayıtları göstermez.
İlk 1000 yada X kaydı çekmesi gibi bir seçenekte var.Olmazsa onu yapacam ancak böyle bir çözüm de olabilir belki.
İlgine teşekkürler.
Diğer önerine gelince dataset kapalı olursa bu dediğim olay gerçekleşmez.Yani dbgrid kayıtları göstermez.
İlk 1000 yada X kaydı çekmesi gibi bir seçenekte var.Olmazsa onu yapacam ancak böyle bir çözüm de olabilir belki.
İlgine teşekkürler.
merhaba,
@newmember ustam mesajları okurken aklıma kayıtları belirli sayıda çekme olayı geldi ve baktımki siz bu cevabı vermişsiniz. bu cevabınızı okuyunca aklıma şu geldi scroll özelliğinde kayıtları tek tek çekmesini sağlama yani kişi kaydırma çubuğunu aşağıya çektikçe bir kayıt bir kayıt çekece datasetten. olurmu bilmiyorum ama dbgrid eventine baktım scroll ile ilgili bir seçim yok ama keyup keydown falan var. benimkisi sadece bir mantık yürütmek yapıp denemiş falan değilim.
kolay gelsin
@newmember ustam mesajları okurken aklıma kayıtları belirli sayıda çekme olayı geldi ve baktımki siz bu cevabı vermişsiniz. bu cevabınızı okuyunca aklıma şu geldi scroll özelliğinde kayıtları tek tek çekmesini sağlama yani kişi kaydırma çubuğunu aşağıya çektikçe bir kayıt bir kayıt çekece datasetten. olurmu bilmiyorum ama dbgrid eventine baktım scroll ile ilgili bir seçim yok ama keyup keydown falan var. benimkisi sadece bir mantık yürütmek yapıp denemiş falan değilim.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

@bobasturk demişki:
Kolay Gelsin.
İşte benim istediğim olay da o.DbGrid zaten scrollbarıaşağıya ne kadar çekersen o kadar datasetten kayıt çekiyor.Yani tek tek tıklanırsa dataset kayıtları tek tek çekiyor.İşte burada dbgridin scrollbarını tek tek hareket ettirmek istiyorum.Dediğinzi gibi dbgridin eventlerinde böyle bir özellik yok.Keyup keydown özellikleri belki olabilir ama zorlama olur gibime geliyor.Belki daha pratik bir çözüm bilen ustalarımız vardır.merhaba,
@newmember ustam mesajları okurken aklıma kayıtları belirli sayıda çekme olayı geldi ve baktımki siz bu cevabı vermişsiniz. bu cevabınızı okuyunca aklıma şu geldi scroll özelliğinde kayıtları tek tek çekmesini sağlama yani kişi kaydırma çubuğunu aşağıya çektikçe bir kayıt bir kayıt çekece datasetten. olurmu bilmiyorum ama dbgrid eventine baktım scroll ile ilgili bir seçim yok ama keyup keydown falan var. benimkisi sadece bir mantık yürütmek yapıp denemiş falan değilim.
kolay gelsin
Kolay Gelsin.
Merhaba,
Ben bu konularda iyi olmadığım için kaç günden beri uğraşıyorum. Derdinizin çözümünü biliyordum. Ama ben parçaları birleştiremiyordum.
İnadına uğraşarak inşallah size yarayacak çözümü bulmuşumdur.
Bunu denemek için bir forma
1 adet table
1 adet datasource
1 adet dbgrid
2 adet label kullanın.
Aşağıdaki kodu type kısmına ekleyin.
Kod kısmına aşağıdakini yazın.
Artık scroll barı kullandığınızda dbgridin size tepki verdiğini görebilirsiniz.
Buradaki inherited; kelimesi sanırım. aldığımız mesajı işletiyor.
Ben de gelen değer line up ve line down ise bu mesajı işle demişim. yoksa işleme demişim.
Yanlız bu konuları araştırırken bir konu kafama takıldı. application.onmessage ile takip ederken wm_vscroll mesajını yakalayamıyor. bunun yerine wm_ncl... türü mesajları yakalıyor.
Umarım tecrübeli arkadaşlar bize sebebini açıklarlar.
Kolay gelsin.
Ben bu konularda iyi olmadığım için kaç günden beri uğraşıyorum. Derdinizin çözümünü biliyordum. Ama ben parçaları birleştiremiyordum.
İnadına uğraşarak inşallah size yarayacak çözümü bulmuşumdur.

Bunu denemek için bir forma
1 adet table
1 adet datasource
1 adet dbgrid
2 adet label kullanın.
Aşağıdaki kodu type kısmına ekleyin.
Kod: Tümünü seç
type
TDbGrid = class(DbGrids.TDBGrid) // custom runtime behavior
private
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
protected
end;
Kod: Tümünü seç
procedure TDbGrid.WMVScroll(var Message: TWMVScroll);
begin
case message.ScrollCode of
SB_BOTTOM :form1.label2.caption:='SB_BOTTOM ';
SB_ENDSCROLL :form1.label2.caption:='end scroll';
SB_LINEDOWN :inherited; //form1.label2.caption:='line down';
SB_LINEUP:inherited; //form1.label2.caption:='line up';
SB_PAGEDOWN :form1.label2.caption:='page down';
SB_PAGEUP :form1.label2.caption:='page up';
SB_THUMBPOSITION:form1.label2.caption:='thumb position ';
SB_THUMBTRACK :form1.label2.caption:='thumb track';
SB_top :form1.label2.caption:='sb top ';
end;
form1.label1.caption:='geldi';
end;
Buradaki inherited; kelimesi sanırım. aldığımız mesajı işletiyor.
Ben de gelen değer line up ve line down ise bu mesajı işle demişim. yoksa işleme demişim.
Yanlız bu konuları araştırırken bir konu kafama takıldı. application.onmessage ile takip ederken wm_vscroll mesajını yakalayamıyor. bunun yerine wm_ncl... türü mesajları yakalıyor.
Umarım tecrübeli arkadaşlar bize sebebini açıklarlar.
Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Logo Go özel eğitim, web tasarım, teknik servis
s.a.
burdaki arkadaşda benzer bi sorunla karşılaşmış belki çözümü işinize yarıyabilir.
viewtopic.php?t=13485&highlight=
kolya gelsin.
burdaki arkadaşda benzer bi sorunla karşılaşmış belki çözümü işinize yarıyabilir.
viewtopic.php?t=13485&highlight=
kolya gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim