DBGrid'de sütun başlıklarına tıklayarak sıralama yaptırmak

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

DBGrid'de sütun başlıklarına tıklayarak sıralama yaptırmak

Mesaj gönderen mucar »

Forma bir Dbgrid koyup gerekli bağlantıları yapın.
Fare başlıkların üzerine gelince imleci değiştirmek için;

Kod: Tümünü seç

procedure TForm1.DBGrid1MouseMove
  (Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  pt: TGridcoord;
begin
  pt:= DBGrid1.MouseCoord(x, y);

  if pt.y=0 then
    DBGrid1.Cursor:=crHandPoint
  else
    DBGrid1.Cursor:=crDefault;
end;
Burada fare pozisyonunun y koordinatının 0 olma durumu başlık kısmında olduğumuzu göstermekte. Sıralama için ise;

Kod: Tümünü seç

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
{$J+}
 const PreviousColumnIndex : integer = -1;
{$J-}
begin
  if DBGrid1.DataSource.DataSet is TCustomADODataSet then
  with TCustomADODataSet(DBGrid1.DataSource.DataSet) do
  begin
    try
      DBGrid1.Columns[PreviousColumnIndex].title.Font.Style :=
      DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
    except
    end;

    Column.title.Font.Style := 
    Column.title.Font.Style + [fsBold];
    PreviousColumnIndex := Column.Index;

    if (Pos(Column.Field.FieldName, Sort) = 1)
    and (Pos(' DESC', Sort)= 0) then
      Sort := Column.Field.FieldName + ' DESC'
    else
      Sort := Column.Field.FieldName + ' ASC';
  end;
end;
Sıralama yapmak için ise Adoquery veya Adotable bileşenlerinin Sort özelliği kullanılıyor. Ayrıca sıralama yaptırılan sütun başlığını koyu yapıyor.

Kaynak: http://delphi.about.com/od/usedbvcl/l/aa042203a.htm
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

evet hocam kusura bakmayın, göndermeden aratsam iyi olurmuş.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
alitiras
Üye
Mesajlar: 8
Kayıt: 11 Eyl 2014 09:36

Re: DBGrid'de sütun başlıklarına tıklayarak sıralama yaptırmak

Mesaj gönderen alitiras »

procedure TForm10.DBGrid1TitleClick(Column: TColumn);
begin
Adoquery1.Sort:= column.FieldName;
end;
Cevapla