Fórum Organização de itens no Treeview - CustomSort #271293
07/03/2005
0
Acredito que este método possa me resolver o problema que estou tendo e que não foi possível resolver nem com SortType nem com AlfaSort.
Valeu!
wbb
Wbb
Curtir tópico
+ 0Posts
08/03/2005
Marcelo Saviski
Gostei + 0
08/03/2005
Wbb
Gostei + 0
08/03/2005
Marcelo Saviski
se tiver coloque o cabeçalho dele aqui...
Gostei + 0
08/03/2005
Wbb
wbb
Gostei + 0
09/03/2005
Marcelo Saviski
procedure TreeViewCompare(Sender: TObject; Node1, Node2: TTreeNode; Data: Integer; var Compare: Integer)
Chame
TreeView.CustomSort(nil, 0 True|False);
no primeiro parametro vc passaria uma função para comparar um item com outro, se vc passar nil ele usa o evento OnCompare
o 2º parametro e um valor qualquer, ele vai ser repassado no parametro Data no evento.
no 3º, se indicar True, vai fazer as comparações com os primeiros itens itens, depoios com os subitens, os subitens dos subitens e assim vai
se indicar false compara apenas os primeiros nodes
vc pode chamala para um Node especifico também, não apenas para o TreeView inteiro
TreeView.Items[0].CustomSort(nil, 0, True|False);
quando executar o método CustomSort, o evento OnCompare vai ser acionado, vc deve comparar o Node1 com o Node2
se o Node1 deve ficar acima do Node2 então altere o parametro Compare para um valor menor que zero, caso deva ficar abaixo, altere para um valor maior que zero.
Ou talvez seja o contrário, menor que zero para uma coisa e maior para outra, tem que testar.
para testar, vc poderia fazer isso: no OnCompare
Compare := CompareText(Node1.Text, Node2.Text);
e chame o CustomSort
TreeView.Items[0].CustomSort(nil, 0, False);
Nessa caso ele ordenaria alfabéticamente apenas os Nodes que estiverem dentro do primeiro item do TreeView, sem ordenar os subitens deles nem os outros itens
Espero que ajude
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)