สำหรับการจัดเรียงข้อมูลภายใน TListview นั้นหลายๆคนคงรู้กันอยู่แล้วแต่เอาเป็นว่าสำหรับคนที่ยังไม่รู้แล้วกันครับ
โดยเราจะลาก Tlistview ก่อนจากนั้นนั้นก้อปรับ Properties ตามผมเลยครับ
1. ViewStyle := vsReport;
2. GridLines := True; อันนี้เพื่อความสวยงามครับ
จากนั้นเราจะทำการ Add Columns ก่อน หรือ Caption หรือ หัวข้อนั่นเองโดย
listview1.Columns.Add.Caption := 'Col1';
listview1.Columns.Add.Caption := 'Col2';
listview1.Columns.Add.Caption := 'Col2';
ผลลัพธ์
เมื่อเราได้ หัวข้อมา 3 หัวข้อแล้วเราจะทำการเพิ่ม Items และ Subitems กันโดย...
var
ListItems:TListitem;
begin
ListItems := listview1.Items.Add;
with ListItems do
begin
Caption := 'C';
Subitems.Add('2');
Subitems.Add('12.33');
end;
end;
พยาเพิ่มอย่าให้ข้อมูลเรียงกันเป็นระเบียบเพราะเราจะเอามาลองจัดอีกทีหนึ่ง
โดยปกติเราสามารถใช้คำสั่ง listview1.AlphaSort; ได้เลยแต่มันจะเรียงจากมากไปหาน้อยและมันจะเรียง
ได้เฉพาะCaption หรือ Column[0] เท่านั้น
วิธีการที่เราจะ Customize การจัดเรียงของ TListview เราจะอาศัย Event OnCompare
และจำใส่โค๊ดดังต่อไปนี้
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
var
intItem1,
intItem2: String;
begin
intItem1 := Item1.Subitems[0] ; {ถ้ากำหนดเป็น Caption ก็จะเรียงคอลัมที่แรก}
intItem2 := Item2.Subitems[0] ;
{เปลี่ยนจาก น้อย เป็น มากกว่า}
if intItem1 <> intItem2 then
Compare := 1
else // intItem1 = intItem2
Compare := 0;
end;
ผลลัพธ์เรียงคอลัมธ์ที่2
หลังจากใช้คำสั่ง listview1.AlphaSort;
ลองดูครับไม่ยากอย่างที่คิด
ไม่มีความคิดเห็น:
แสดงความคิดเห็น