Listview türkçe sıralama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mulus
Üye
Mesajlar: 67
Kayıt: 30 May 2005 10:42
Konum: Bursa
İletişim:

Listview türkçe sıralama

Mesaj gönderen mulus »

Slm, yapmak istediğim listview'in columnlarına tıklanınca türkçe harf sırasına göre sıralama yapmak. Halihazırda olan türkçe karakterleri listenin sonuna atıyor. Bu konuda yardımcı olabilecek yada kaynak gösterebilecek arkadaşlara şimdiden teşekkür ederim.
Kullanıcı avatarı
miskin
Üye
Mesajlar: 103
Kayıt: 26 Tem 2005 02:02
Konum: Gavuristan

Mesaj gönderen miskin »

Listview'in sort funksiyonu olasi lazim orda siralamayi yaptirabilirsin
miskin
Ve Tanri, bütün kullarini davul edecek :)
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

ListView'in CustomSort diye bir metodu var, Delphi Help'ten bunu inceleyin. Örnek kod da mevcut. Ayrıca ListView ben de doğru sıraladı. Sanırım XP'de sorun çıkarmıyor.
mulus
Üye
Mesajlar: 67
Kayıt: 30 May 2005 10:42
Konum: Bursa
İletişim:

Mesaj gönderen mulus »

yok ben bunu beceremiyeceğim.. listview de ilk column rakamlara ait ve onları sağa yaslanmış ve 17,18,19,20 .... şeklinde sıralatmam lazım. delphi 1,10,11,12....19,2,3,4 diye sıralıyor bunu düzeltmem lazım birde tabi kayıtlardaki türkçe karakter sorunu var. türkçe karakterle başlayanları sona atıyor. Custom sort olayıları var ama bunun için nasıl bir kod yazayım ki bu dediklerimi yapsın... teşekkürler...
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Sıralama fonksiyonunu her kolon için nasıl çalışmasını istiyorsanız öyle yazın. Mesela Birinci kolonda sadece sayılar var ise ve ikinci kolonda da sadece text var ise :

Kod: Tümünü seç

function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
  case ParamSort of
    0 : Result := StrToInt(Item1.Caption) - StrToInt(Item2.Caption);
    1 : Result := AnsiCompareStr(Item1.SubItems.Strings[0] ,Item2.subitems.Strings[0]);
  end;
end;

Kod: Tümünü seç

procedure TForm1.ListView1ColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  ListView1.CustomSort(@CustomSortProc,Column.Index);
end;
kod bu şekilde olur
mulus
Üye
Mesajlar: 67
Kayıt: 30 May 2005 10:42
Konum: Bursa
İletişim:

Mesaj gönderen mulus »

t-hex inanın beni 12 günlük sıkıntıdan kurtardınız. Araştırmaktan bunalmıştım artık.. yaş ilerleyincede artık kafada almıyor demekki :) .. Herşey için teşekkür ederim. Ellerin dert görmesin.
Cevapla