Gridlerde istenilen harfle başlayan ilk kayıta konumlanma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Gridlerde istenilen harfle başlayan ilk kayıta konumlanma

Mesaj gönderen baloglurecep »

Arkadaşlar selamlar saygılar....
belki herkes biliyordur ama sorayım dedim. cahilliğime veriniz lütfen. genelde dewexpresin gridlerini kullanıyorum. belki onlara özgü bir ayar vardır ben görmedim. ama kodla yaparsak her gridlde kullanılablir. örneğin binlerce kişiden oluşan bir liste var. kullanıcı bu listeden istediği harfle başlayan kısma gitmek istiyor. ama filitre yapmayacak sadece o harfle başlayan kayıtların ilkine konumlanacak ve ilk harfi renklendirecek. sanırım anlatabildim. bunu ben butonlarla yapıyordum. 30 buton koyup bir panele hangi butona tıklarsa filitre ediyordum. tümü butonuna tıklarsa hepsi geliyordu. benim dediğim şekilde nasıl yapılablir. filitre edilmeden liste bozulmadan kullanıcı gb grid üzerindeyken hangi harfe tıklarsa o harle başlayanların ilkine konumlansın.
teşekkürler
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2385
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen freeman35 »

Artık yazmaktan ben sıkıldım.grid sadece datasourse içindeki kayıtları grid şeklinde ekrana basar.yazma değiştirme silme vs gibi DATABASE üzerindeki işlerinizi kolaylaştırır.
Önce kolon seçilmeli ve o kolon a-z yada z-a şeklinde sıralanmalı.sonra ya forma edit koyup yada keypress vs gibi bir event ile klavye tuşu alınır. DataSourse.Locate yada DataSourse.Lookup ile konumlanır. (detaylarını, kullanım detay delphi help yada yüce google dan alınır)
Locate db de cursor u da konumlandırır, lookup konumlandırmaz buna dikkat edilir.
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen baloglurecep »

selamlar freeman35 hocam. cevabınız için teşekkür ederim. ancak birazda azarlama gibi algıladım :) neden kızarak cevap verdiniz. dediklerinizi tam anlayamadım dersem kızarmısınız bana. biraz daha açıklayıcı cevap ile çoğu kullanıcı istifade eder bu sorudan ve cevaptan. imkan ölçüsünde mini bir örnek kodda ekleyebilirsiniz

saygılarımla...
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2385
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen freeman35 »

sorun değil,sende herkes gibi yanlış anlamışsın :)
Balık tutmayı öğretirim ama benden balık beklemeyin boşuna. Yeterince açıklamışım diye düşünüyorum,önceki mesajımda önemli noktaları açıklamışım,sen bunun üzerine araştırıp geliştir.Bunu yapamıyor olabilirsin bu normaldir,ilk başladığımda bende bilmiyordum,hala daha çoğu şeyi bilmiyorum,ama help ve google kullanıyorum.Ben başladığımda basılı kitap dahi bulamıyorduk,ama bu beni yıldırmadı.
DataSourse.Locate yada DataSourse.Lookup başına delphi yazıp bir arat bak neler çıkıyor,istemediğin kadar örnek bulacaksın
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
muhcet
Üye
Mesajlar: 12
Kayıt: 01 May 2009 08:37

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen muhcet »

s.a.
elimizde bi edit olsun. edit'ten sorgu yapalım. edit'in onchange olayına;

Kod: Tümünü seç

datamodule2.dataset1.close;
datamodule2.dataset1.selectsql.clear;
datamodule2.dataset1.selectsql.add('select * from TABLO');
datamodule2.dataset1.selectsql.add('where adisoyadi like ''%'+edit1.text+'%''');
datamodule2.dataset1.open;
yazsak işimizi görmez mi?
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen thelvaci »

Binlerce kayıdı veritabanından her tuşa basışta çekmek istiyorsanız ve oluşacak bu yavaşlık programınızı kullanacaklar için bir sabır geliştirme vesilesi ise neden olmasın ;)
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen baloglurecep »

muhcet arkadaşım bu kodlar filitreleme. böyle yaparsak sade o kayıtlar gelir. ben kayıtların tümü duracak sadece kullanıcının klavyeden bastığı harfe başlayan kayıtların ilkine konumlanacak. çözüm ürettiğimde balık tutmayı öğrendiğimde balığımı sizlerle paylacam. :)
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen unicorn64 »

aslında @freeman35 hocam cevabı vermiş, ama sanki yazdığı diğer şeyleri okurken cevabı görememişsiniz..

DataSetin (tablo yada query nesnesinin) Locate komutu, verilen parametrelere uygun kaydı dataset içinde arar, bulursa konumlanır.. bulup bulamama durumunu da boolean olarak geri döner..

Kod: Tümünü seç

Query.Locate('alan1;alan2',vararrayof(['deger1','deger2']),[loCaseInsensitive,loPartialKey]);
3. parametre locate için arama özelliklerini belirtir, seçimliktir, ihtiyaca göre kullanılır

loCaseInsensitive-> büyük/küçük harf önemsemeden ara
loPartialKey -> sanırım verilen ifadenin bir kısmı uysa bile bulundu kabul et gibi bişeydi

delphi 2010un helpindeki örnek;

Kod: Tümünü seç

CustTable.Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '831-431-1000']), [loPartialKey]);
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
muhcet
Üye
Mesajlar: 12
Kayıt: 01 May 2009 08:37

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen muhcet »

Kod: Tümünü seç

procedure TListe.btnBulClick(Sender: TObject);
var
durum:integer;
bulundu:Boolean;
begin
bulundu:=Datamodule2.dataset1.Locate('AdSoyad', Edit1.text,[loCaseInsensitive,loPartialKey]);
//Tabloda Locate komutunu kullanmak için en üstteki uses kısmına DB eklenmelidir.
if bulundu=false then
application.messagebox('böyle bir kayıt yok!','bilgi',mb_OK+mb_iconinformation);
end;
böyle birşey işinizi görür mü?
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Gridlerde istenilen harfle başlayan ilk kayıta konumlanm

Mesaj gönderen conari »

Jedi bileşen setinde Dbfindedit di sanırım.
ilgili tablo ve field ı gösteriyorsunuz.
İsteğe göre durumu, filter veya locate seçiyorsunuz.
siz yazdıkça işlem yapıyor. Kod yazmaya gerek yok.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla