排序的简单问题(100分)

  • 主题发起人 主题发起人 cccc
  • 开始时间 开始时间
C

cccc

Unregistered / Unconfirmed
GUEST, unregistred user!
1、sorttype怎么用,在一个LISTVIEW中某列是文字,某些列是数值,是否通过改变
sorttype的属性来改变它排序的原则?它究竟是给那列排序?
2、各列的属性在那里给出
 
1. sorttype=sttext时是根据listview中的文字来排序的,即便是数值,也是当成字符串来看待的
sorttype=stdata时是根据listview中每项有一个对应的data属性来排序的

2. listview1.columns.xxx。
 
sorytype只是一个简单的属性,在没在太多的要求下,可以设置它节约代码。
更多的排序要用到listview的几个方法和事件。

delphi自带的例子


var ColumnToSort: Integer;
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ListView1ColumnClick(Sender: TObject;
Column: TListColumn);
begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;


procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
if ColumnToSort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else begin
ix := ColumnToSort - 1;
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end;
end;

listview还有几个方法和事件,如
customsort
 
1:用sorytype排序到底是根据那一行进行排序,是对你鼠标所指行?
2:调用AlphaSort的目的是否是为了启动sorytype
我的需求是这样的
在LISTVIEW中有的列是中文,有的列是数值,我希望用ListView1ColumnClick时对他们
进行排序,正序逆序都可排
 
啊,我就是觉得它都是STRING但我想输入数值型,让它根据数值的大小进行比较
谢谢!我因为没用过,所以麻烦你了
 
只有编程咯!
如果对LISTVIEW熟悉,应该不是问题!
 
我对LISTVIEW不熟悉,这是我第一次用,还请都指教,
menxin,还请你在进一步详解
 
cccc:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
多看帮助AND例子
 
多人接受答案了。
 
后退
顶部