Fórum Informações entre Dois LIstbox #235800
02/06/2004
0
Colegas,
Estou tentando escrever um algoritmo que faça a troca de itens entre dois listbox, de forma que quando um item retornar para a listbox de origem, ele retorne na posição exata que ocupava. Alguém sabe ou já fez algo parecido?
Caso ninguém saiba ou não tenha entendido, serve também como solução deixar o item selecionado que saiu da listbox com a cor mais apagada, diferenciando dos demais itens que não sairam da listbox e não permitindo, dessa forma, mais a sua seleção.
Estou tentando escrever um algoritmo que faça a troca de itens entre dois listbox, de forma que quando um item retornar para a listbox de origem, ele retorne na posição exata que ocupava. Alguém sabe ou já fez algo parecido?
Caso ninguém saiba ou não tenha entendido, serve também como solução deixar o item selecionado que saiu da listbox com a cor mais apagada, diferenciando dos demais itens que não sairam da listbox e não permitindo, dessa forma, mais a sua seleção.
Muxagata
Curtir tópico
+ 0
Responder
Posts
02/06/2004
Rômulo Barros
[color=red:c0db3f6366][b:c0db3f6366]Passando o ítem selecionado de um Lb para outro Lb[/b:c0db3f6366][/color:c0db3f6366]
[b:c0db3f6366][color=red:c0db3f6366]Passando todos os items de um lb para outro lb[/color:c0db3f6366][/b:c0db3f6366]
Pronto.. basta chamar a função e passar os dois ListBox (Origem e Destino) como parâmetros.
procedure TfrmAssocAreaLinha.AssociarUm(parOrigem, parDestino: TListBox); begin If(parOrigem.ItemIndex <> -1)Then Begin parDestino.Items.Add(parOrigem.Items.Strings[parOrigem.ItemIndex]); intC := parOrigem.ItemIndex; parOrigem.DeleteSelected; If(parOrigem.Items.Count <> intC)Then Begin parOrigem.ItemIndex := intC; End Else Begin parOrigem.ItemIndex := intC - 1; End; End; end;
[b:c0db3f6366][color=red:c0db3f6366]Passando todos os items de um lb para outro lb[/color:c0db3f6366][/b:c0db3f6366]
procedure TfrmAssocAreaLinha.AssociarTodos(parOrigem, parDestino: TListBox); begin If(parOrigem.ItemIndex <> -1)Then Begin parOrigem.ItemIndex := 0; For intC := 0 To parOrigem.Items.Count -1 Do Begin parDestino.Items.Add(parOrigem.Items[intC]); End; parOrigem.Items.Clear; End; end;
Pronto.. basta chamar a função e passar os dois ListBox (Origem e Destino) como parâmetros.
Responder
Gostei + 0
03/06/2004
Muxagata
Valeu pela rotina, porém ela não mantém a posição original quando retorna ao listbox de origem.
Mesmo assim, valeu!
Mesmo assim, valeu!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)