Clipper On Line • Ver Tópico - Multi select Listbox

Multi select Listbox

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Multi select Listbox

Mensagempor asimoes » 22 Nov 2017 19:14

Pessoal,

Tem como fazer multi seleção com o componente listbox ?
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Multi select Listbox

Mensagempor Toledo » 22 Nov 2017 21:32

Alexandre, incluir no listbox:

STYLE LBS_MULTIPLESEL


Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Multi select Listbox

Mensagempor asimoes » 22 Nov 2017 23:06

Toledo,

Funcionou!!!

Agora pra pegar os selecionados sabes como ?
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Multi select Listbox

Mensagempor Toledo » 23 Nov 2017 07:33

Alexandre, fiz um teste aqui, mas não descobri como pegar os itens selecionados. Pensei que Value, neste caso, seria uma array com os itens que foram selecionados, mas não é, value retorna apenas o último item selecionado.

Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Multi select Listbox

Mensagempor asimoes » 23 Nov 2017 07:57

Toledo,

Obrigado.

Fiquei testando isso ontem e tive a ideia de guardar o value em um array, conforme selecione no listbox, ai já dá pra saber

Tipo:

THREAD STATIC aLista := {}

nPos := ThisformOpsProc:oListOps:Value
nPosLista := aScan( aLista, {|AVAL|AVAL[1] == nPos } )
IF nPosLista = 0
   aAdd( aListaX, { nPos } )
ELSE
   hb_ADel( aListaX, nPosLista, .T. )
ENDIF
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Multi select Listbox

Mensagempor Toledo » 23 Nov 2017 09:58

Fiz um teste aqui, mas usando o ON CHANGE do ListBox.

   @ 10,40 LISTBOX oList ITEMS oItems ;
             OF oModDlg                  ;
             INIT 1 ;
             SIZE 210, 220            ;
             ON CHANGE {|| ListSel(lastkey(),oList:Value) } ;
             STYLE LBS_MULTIPLESEL ;
             TOOLTIP "Teste ListBox"     


Function ListSel(nkey_,nItem_)
If nKey_==0 .or. nKey_==32
   nEle_:=ASCAN(aListaX,{|e| e=nItem_})
   If nEle_>0
      hb_ADel(aListaX,nEle_,.T.)
   else
      aAdd(aListaX, nItem_)
   endif
endif
Return Nil


A aListaX declarei como Private (aListaX:={}) e adicionei seu conteúdo como uma array simples, não multi-dimensional, então para pegar os itens selecionados use:

For i=1 to Len(aListaX)
   ? aListaX[i]
Next


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Multi select Listbox

Mensagempor asimoes » 23 Nov 2017 11:36

Toledo,

Você sabe como remover uma seleção ( o destaque da linha ? )
Sem ser pelo click do mouse
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Multi select Listbox

Mensagempor Toledo » 23 Nov 2017 16:30

Vixi, não sei não!

Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes




Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro