dbgrid titleclick, tıklandığı yere göre sıralama yaptırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

dbgrid titleclick, tıklandığı yere göre sıralama yaptırma

Mesaj gönderen Ancestor »

S.a.

Tam olarak nasıl sorucağımı bilmediğimden resmini çektim :)
Resim
Resim

Titleda tıklandığında A'dan Z'ye, Z'den A'ya gibi sıralama yaptırmak istiyorum. Jedi'nin dbgridinde titleclick olayı var ama hangi alana tıklandığı ve hangi sorgulamayı (AZ - ZA) yapacağının kontrolünü nasıl yapabiliriz?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

ADO Bileşenleri ile normal grid içinde yapabilirsin.

Mesaj gönderen sabanakman »

Eğer ADO'nun DataSet bileşenlerini (TADOQuery,TADOTable vs.) kullandıysan bunu normal grid içinden de yapabilirsin.

Kod: Tümünü seç

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
const Desc=' DESC'; LenDesc=Length(Desc);
var DataSet:TDataSet;
begin
  if Assigned(Column) and Assigned(Column.Field) and
   Assigned(Column.Field.DataSet) then
  begin
    DataSet:=Column.Field.DataSet;
    if DataSet is TCustomADODataSet then
    with TCustomADODataSet(DataSet) do
    begin
      if SameText(Desc,Copy(Sort,Length(Sort)-LenDesc+1,MaxInt)) then
        Sort:=Column.FieldName
      else Sort:=Column.FieldName+Desc;
    end;
  end;
end;
kolay gelsin.

Not:Yukarıdaki kodlar göz kararı yazıldı test edilmedi.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Mesaj gönderen Ancestor »

Göz kararı bile iyi yazmışsınız, aynen çalıştı :)
Teşekkürler, iyi çalışmalar.
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

;)
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Aslında tam olarak öyle değil.

Mesaj gönderen sabanakman »

Göz kararı dediğime bakmayın 5-6 kere düzenleme yaptmıştım! :)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

db grid title a göre sıralama

Mesaj gönderen conari »

Mrb Ben beceremedim. :)

Kod: Tümünü seç

procedure TSform.ACIKsipDBGridTitleClick(Column: TColumn);
const Desc=' DESC'; LenDesc=Length(Desc);
var DataSet:TDataSet;
begin
  if Assigned(Column) and Assigned(Column.Field) and
   Assigned(Column.Field.DataSet) then
  begin
    DataSet:=Column.Field.DataSet;
    if DataSet is TCustomADODataSet then
    with TCustomADODataSet(DataSet) do
    begin
      if SameText(Desc,Copy(Sort,Length(Sort)-LenDesc+1,MaxInt)) then
        Sort:=Column.FieldName
      else Sort:=Column.FieldName+Desc;
    end;
  end;
end;
Neyi düzeltmem lazım
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Mesaj gönderen Biltes »

Hocam birde bu başlıktaki makaleye bakınız. Umarım işinize yarar...

Kolay gelsin...

viewtopic.php?t=12403
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Saol Biltes,
yanlız burda ado nun sort unu kullanmış ben BDE kullanıyorum..:) başka bir fonksiyon bulmam lazzım..
ikut

Mesaj gönderen ikut »

conari yazdı:Saol Biltes,
yanlız burda ado nun sort unu kullanmış ben BDE kullanıyorum..:) başka bir fonksiyon bulmam lazzım..
Mrb

bir mezarın üstünde iş yazıyormuş... "BDE INSIDE"
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

ikut yazdı:
conari yazdı:Saol Biltes,
yanlız burda ado nun sort unu kullanmış ben BDE kullanıyorum..:) başka bir fonksiyon bulmam lazzım..
Mrb

bir mezarın üstünde iş yazıyormuş... "BDE INSIDE"
hehehe daha dereyi görmedim..
Proje Ufak ondan kasmıyorum..
Cevapla