Como passar dois valores diferentes no Label de um ListBox

Delphi

15/02/2008

Pessoal, é o seguinte, tenho um ListBox com o multselect ativo, ai preciso que ele me passe dois valores para 2 Label´s

Exemplo

Bom to sem o código aqui, vou tentar fazer de cabeça

var
  campo1, campo2 : string;
begin
  campo1:=ListBox1.Items[ListBox1.ListIndex];
  campo2:=ListBox1.Items[ListBox1.ListIndex];
{:ai passar os dois campos selecionas para o label}
  Label1.Caption:=Campo1;
  Label2.Caption:=Campo2;
end;


Bom não sei se esta certo este código acima, mais a idéia é por exemplo, se eu tiver na listagem do ListBox assim

ADRIANO
ANTONIO
CARLOS
MARIA
JOANA
MONICA


Ai selecionar com o multselect o item ANTONIO e MONICA

Então no Label1 o caption deve pegar o nome do ANOTNIO, e no Label2 o caption pegar o nome da MONICA.

Bom é isso que eu preciso, espero ter explicado corretamente


Adriano_servitec

Adriano_servitec

Curtidas 0

Respostas

Rodc

Rodc

15/02/2008

Use ListBox1.Selected[posição_lista] para saber se a linha está selecionada. Daí você terá de percorrer todos os itens verificando quais estão selecionados. O primeiro você coloca no Label1 e o segundo você coloca no Label2.
Ca precise saber quantos tem selecionados, use SelCount.


GOSTEI 0
Paulo_amorim

Paulo_amorim

15/02/2008

Olá

Completando a resposta do Rod:

O problema desse caso que vc descreveu é a limitação de 2 seleções, claro. Pode-se permitir mais seleções criando os labels em tempo de execução (se é que é necessário)...
Eu to sem Delphi aqui mas achoque é mais ou menos assim:

var
  lbl: TLabel;
  i: Integer;
  altura: Integer;
begin
altura := 10; //sua altura inicial

for i := 0 to ListBox.Items.Count do
begin
{ se nao tiver selecionado nao faz nada }
if not ListBox.Selected[i] then 
continue;

lbl := TLabel.Create(Self);
lbl.Parent := Self;
lbl.Top := altura;
lbl.Height := 15;
lbl.Caption := ListBox.Items[i]; //esqueci como pegar o valor aqui...

altura := altura + 20;
end;
end;


Acho que isso deve funcionar...

Espero que ajude
Até+


GOSTEI 0
POSTAR