sıralama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

sıralama

Mesaj gönderen mazhargemci »

dbgridin başklıklarına tıklayarak nasıl sıralama yapabiliriz
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: sıralama

Mesaj gönderen xozcanx »

Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
mazhargemci
Üye
Mesajlar: 101
Kayıt: 13 Şub 2015 09:32

Re: sıralama

Mesaj gönderen mazhargemci »

Kod: Tümünü seç

if (Pos(Column.Field.FieldName, Sort) = 1)
    and (Pos(' DESC', Sort)= 0)
kısmında [DCC Error] Unit1.pas(709): E2251 Ambiguous overloaded call to 'Pos'
System.pas(16698): Related method: function Pos(const WideString; const WideString): Integer;
System.pas(18389): Related method: function Pos(const string; const string): Integer;
[DCC Warning] Unit1.pas(709): W1058 Implicit string cast with potential data loss from 'string' to 'RawByteString'
şeklinde hata veriyor
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: sıralama

Mesaj gönderen xozcanx »

Biraz Karmaşık geldi sanırım, Pos işlemleri yapmanız gerekiyor, Kendi kullandığım yöntemi paylaşayım sizinle;

Kod: Tümünü seç

var ilkkod:String;
.
.
Query1.SQL.Text:='Select * From Tablo';
ilkkod:=Query1.SQL.Text;
.
.
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var Status :Integer; SQLCumlesi:String;
begin
  if Status=0 then
  BEGIN
    SQLCumlesi:='';
    with Query1 do
    Begin
      SQLCumlesi:= ilkkod+ ' order by '+Column.FieldName;
      if Active then Close;
      SQL.Clear;
      SQL.Add( SQLCumlesi );
      Open;
      Status :=1;
    end;
  END
  else
  BEGIN
    SQLCumlesi:='';
    with Query1 do
    Begin
      SQLCumlesi:= ilkkod+ ' order by '+Column.FieldName+' desc ';
      if Active then Close;
      SQL.Clear;
      SQL.Add( SQLCumlesi );
      Open;
      Status :=0;
    end;
  END;
End;
"ilkkod" ile Sorgu yaptımız ilk anda SQL cümlemizi sabitliyoruz, Her TitleClick işleminde de ilkkod SQL cümlesine gerekli atama yapılıyor. Burada kullanılan Status a..z mi yoksa z..a ya göremi yapılacağını belirliyor.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Cevapla