Ajuda - Listbox

Delphi

18/09/2013

Tenho um listbox que vai do numero 1 ao 100 e vai ficar visível no formulário para que os usuários possam selecionar.
Ao selecionar o numero no listbox por exemplo 1, é preciso aparecer no edit1 um valor que representa o numero 1

Tipo assim:

Numero 1 do listbox vale 200
Numero 2 do listbox vale 210
Numero 3 do listbox vale 220

Assim por diante até o numero 100, cada numero é representado por um valor, e esse valor precisa aparecer no edit1

Encontrei esse código na net, mais o que esta aparecendo no edit1 é o numero selecionado no listbox, quando eu preciso que apareça seu representante.



procedure TForm1.ListBox1Click(Sender: TObject);
begin
edit1.Text := ListBox1.Items.Strings[Listbox1.ItemIndex];
Luis Sergio

Luis Sergio

Curtidas 0

Respostas

Marcos Oliveira

Marcos Oliveira

18/09/2013

Luiz, seu código está correto. Inclusive, copiei o seu código e testei e está funcionando perfeitamente.
Pode ter algum outro erro que você não tenha visto, mas, o código está correto.
GOSTEI 0
Luis Sergio

Luis Sergio

18/09/2013

cada item (numero) do listbox representa um valor.

Achei um codigo na net que atendeu minhas necessidades, veja:

if ComboBox1.Items.Strings[ComboBox1.ItemIndex]= '1' then
edit1.text:=('200');

Assim preenchi do numero ao 100 e já funciocou.

Pra finalizar só me restou um problema. Quando o arquivo está executando, o usuario pode com o mouse crescer o form, queria travar essa opção, para que ficasse no tamanho padrão sem da chances do usuario arastar suas laterias e fazer crescer o form.
GOSTEI 0
Luis Sergio

Luis Sergio

18/09/2013

Tudo resolvido e aplicação pronta, Obrigado.
GOSTEI 0
Luis Sergio

Luis Sergio

18/09/2013

Tudo resolvido e aplicação pronta, Obrigado.
GOSTEI 0
Alan Souza

Alan Souza

18/09/2013

vc está fazendo 1 if pra cada posição do ListBox?

tem uma forma mais simples de fazer:

Ao preencher a listbox
  ListBox.Items.AddObject('1', TObject(200));
  ListBox.Items.AddObject('2', TObject(201));
  ListBox.Items.AddObject('3', TObject(202));
  ListBox.Items.AddObject('4', TObject(203));
  ListBox.Items.AddObject('5', TObject(204));
  {continua até sua necessidade, pode ser melhorado com laço}


para ler no evento onclick da listbox
  Edit1.Text := IntToStr(Integer(ListBox.Items.Objects[ListBox.ItemIndex]));
GOSTEI 0
Deivison Melo

Deivison Melo

18/09/2013

[b]Caro Luis Sergio[/b],

É interessante postar a solução prosposta para que sirva de help para algum usuário do fórum.

Veja que o [b]Marcos Oliveira[/b] teve o cuidado em testar o seu código e também o [b]Alanps[/b]
sugeriu um código com uma outra solução.

Já que cada analista/desenvolvedor vai sempre sugerir uma solução com sua visão técnica e de negócio,
mas sempre chegando no nosso objetivo final que é o funcionamento da rotina e a satisfação referente
a dúvida postada aqui no fórum!

Obrigado a todos e bons códigos!

E vamos que vamos!!

Abraços!!
GOSTEI 0
Luis Sergio

Luis Sergio

18/09/2013

Pois não moderador, segue a solução:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.Items.Strings[ComboBox1.ItemIndex]= '1' then
edit1.text:=('200');


Como estou rastejando no delphi, a primeira solução que encontrei mesmo sendo trabalhosa, achei melhor deixar assim porque ela funcionou.
Lembrando que tive que fazer do item 1 ao 100 manualmente e colocar seus devidos valores.

Obrigado ia todos
GOSTEI 0
Luis Sergio

Luis Sergio

18/09/2013

Pois não moderador, segue a solução:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.Items.Strings[ComboBox1.ItemIndex]= '1' then
edit1.text:=('200');


Como estou rastejando no delphi, a primeira solução que encontrei mesmo sendo trabalhosa, achei melhor deixar assim porque ela funcionou.
Lembrando que tive que fazer do item 1 ao 100 manualmente e colocar seus devidos valores.

Obrigado ia todos
GOSTEI 0
Luis Sergio

Luis Sergio

18/09/2013

[b]Caro Luis Sergio[/b],

É interessante postar a solução prosposta para que sirva de help para algum usuário do fórum.

Veja que o [b]Marcos Oliveira[/b] teve o cuidado em testar o seu código e também o [b]Alanps[/b]
sugeriu um código com uma outra solução.

Já que cada analista/desenvolvedor vai sempre sugerir uma solução com sua visão técnica e de negócio,
mas sempre chegando no nosso objetivo final que é o funcionamento da rotina e a satisfação referente
a dúvida postada aqui no fórum!

Obrigado a todos e bons códigos!

E vamos que vamos!!

Abraços!!



Pois não moderador, segue a solução:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if ComboBox1.Items.Strings[ComboBox1.ItemIndex]= '1' then
edit1.text:=('200');


Como estou rastejando no delphi, a primeira solução que encontrei mesmo sendo trabalhosa, achei melhor deixar assim porque ela funcionou.
Lembrando que tive que fazer do item 1 ao 100 manualmente e colocar seus devidos valores.

Obrigado ia todos.
GOSTEI 0
Luis Sergio

Luis Sergio

18/09/2013

Desculpe pelas inúmeras repetições, é que deu erro na hora de enviar, e pensei que nenhuma anterior tinha chegado ao site. Por favor apague algumas moderador.
GOSTEI 0
Deivison Melo

Deivison Melo

18/09/2013

Obrigado por postar a solução, assim outros usuários que compartilharem a mesma dúvida poderão usufruir da solução proposta!

Seja bem vindo ao fórum, sempre que precisar estaremos por aqui!!

Abração e bons códigos!

GOSTEI 0
POSTAR