D
delhpi
Unregistered / Unconfirmed
GUEST, unregistred user!
假设某个TStringgrid里有2列,如下。现在要按照“姓名”列,分别升序和降序排序。因为姓名列的内容都是一样的,所以,我个人感觉,无论是升序还是降序,结果的顺序应该和初始的完全一致。如果你在EXCEL里编辑这2列,然后用菜单-数据-排序,结果的顺序和初始的完全一样。姓名 数字我 1我 2我 3我 4我 5我 6我 7我 8我 9我 10下面自己做了个类似的例子测试了一下,发现即使内容一样,位置也会变。//-------字符串排序 1function StrSort_1(List: TStringList; Index1, Index2: Integer): Integer;var Value1, Value2: Integer;begin Result := 0; try Result := -Comparestr(List[Index1], List[Index2]); except end;end;//-------字符串排序 2function StrSort_2(List: TStringList; Index1, Index2: Integer): Integer;var Value1, Value2: Integer;begin Result := 0; try Result := Comparestr(List[Index1], List[Index2]); except end;end;procedure TForm1.Button3Click(Sender: TObject);var i:Integer; StrList:TStringlist;begin strlist:=tstringlist.Create; try for i:=0 to 9 do strlist.Addobject('我',tobject(i));//下面排序一下后,strlist里的项目位置其实变了。 strlist.CustomSort(StrSort_1); for i:=0 to strlist.count-1 do memo1.lines.add(inttostr(integer(strlist.objects))); finally strlist.Free; end;end;