GARANTIR DESCONTO

Fórum Organização de itens no Treeview - CustomSort #271293

07/03/2005

0

Pessoal, alguém poderia me dar uma ajuda no uso do método CustomSort?
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

Wbb

Responder

Posts

08/03/2005

Marcelo Saviski

Esse CustomSort é um evento do TreeView? eu não tenho o Delphi aqui para poder ver


Responder

Gostei + 0

08/03/2005

Wbb

Não. É um método.


Responder

Gostei + 0

08/03/2005

Marcelo Saviski

mas não tem um evento, tipo OnCustomSort, ou algo parecido que aconteça quando chama o TreeView.CustomSort?

se tiver coloque o cabeçalho dele aqui...


Responder

Gostei + 0

08/03/2005

Wbb

O Treeview, na versão nativa do Delphi 5 Enterprise (que estou usando), não possui o evento OnCustomSort, nem nada relacionado a organização dos itens.

wbb


Responder

Gostei + 0

09/03/2005

Marcelo Saviski

O Evento é OnCompare

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar