[em7]
近日,学习了TreeView和数据库连接,正确编写代码后能正常连接并显示出来了,但是TreeView显示后的节点数据和数据表里排序不同,全排序乱,数据表里的"A"排在第100的TreeView里却排在第2了.各朋友帮帮忙解决下,我的想法是按数据表是的ID号(ID是我的数据表里自动增加序号)的大小排序,按ID号小的排前,大的排后,另一个想法是在表里最后加个日期时间列,按时间先后顺序排序,帮助的朋友请写出具体代码,我是Delphi新手哦,先多谢.
function TreeAddItem(Sender: TTreeView; ItemList: TStrings; Bookmark: TBookmark; Resort: Boolean): TTreeNode;
var
   ThisNode, Node: TTreeNode;
   I: Integer;
begin
     Node := nil;   //nil = level 0 has no parent node
          //this is checked by TreeFindItem
     for I := 0 to Itemlist.count -1 do
        begin //for
          ThisNode := TreeFindItem(Sender, node, Itemlist[i]);
          if ThisNode <> nil then
          Node := ThisNode
          else
          begin
          if I < Itemlist.count -1 then
          begin
          if I = 0 then
          Node := Sender.items.Add(Node, Itemlist[i])
          else
          Node := Sender.items.AddChild(Node, Itemlist[i]);
          end
          else
          begin
          if I = 0 then
          Node := Sender.items.AddObject(Node, Itemlist[i], Bookmark)
          else
          Node := Sender.items.AddChildObject(Node, Itemlist[i], Bookmark);
          end;
          Node.stateIndex := Node.level + 1;
          if Resort and (Node.parent <> nil) then Node.parent.alphasort;
          end;
        end; //for
     Result := Node;
end;  
有无一种方法:
指向TreeView的节点按数据表里的ID号大小排序的代码.
或指向TreeView的节点按数据表里的时间排序的代码.
我的数据表结构是:
ID  自动增加编号
PID  文本  (指定TreeView第一层节点编号)
Sid  文本.(指定TreeView第二层节点编号)
Fname  文本(用于TreeView第三层节点显示的TEXT)
Date  日期时间(后来增加的,想用于TreeView第二层...第四层节点TEXT按日期排序)