GARANTIR DESCONTO

Fórum List index out of bounds (4) #415275

11/04/2012

0

Estou utilizando 4 sListBox1,2,3,4

E fiz um código que o botão só ativa, caso todos os 4 estejam com pelo menos 1 item de cada selecionado:
Mesmo assim o botão não ativou, e gera-me este erro antes mesmo do programa abrir!

procedure TForm2.FormCreate(Sender: TObject);
begin
sBitBtn1.Enabled := False;
//Se selecionar de cada lista um item, ative o botao
if (sListBox1.Selected[1] = True)or(sListBox1.Selected[2] = True)or(sListBox1.Selected[3] = True)or(sListBox1.Selected[4] = True)and(sListBox2.Selected[1] = True)or(sListBox2.Selected[2] = True)or(sListBox2.Selected[3] = True)and(sListBox3.Selected[1] = True)or(sListBox3.Selected[2] = True)or(sListBox3.Selected[3] = True)or(sListBox3.Selected[4] = True)and(sListBox4.Selected[1] = True)or(sListBox4.Selected[2] = True) then
  begin
    sBitBtn1.Enabled := True;
  end;
end;
Jhonnatas F

Jhonnatas F

Responder

Posts

11/04/2012

Jhonnatas F

Descobri o erro:

Quer dizer que o classificador [4] não existe, por tem 4 itens dentro de uma lista, eu comecei o index com [1] e o correto de inicio é com [0] e só vai até [3] e não [4].

rsrs, mas agora o problema é que o botão não quer ativar! O que há de errado?
Responder

Gostei + 0

11/04/2012

Bruno Leandro

olá boa tarde, veja se assim é o desejado

procedure TForm2.FormCreate(Sender: TObject);
begin
sBitBtn1.Enabled := False;
//Se selecionar de cada lista um item, ative o botao
if ( sListBox1.ItemIndex > -1 ) and ( sListBox2.ItemIndex > -1 ) and ( sListBox3.ItemIndex > -1 ) and ( sListBox4.ItemIndex > -1 ) then
begin
sBitBtn1.Enabled := True;
end;
end;
Responder

Gostei + 0

11/04/2012

Joel Rodrigues

Pra resumir mais ainda, dá pra fazer;
  sBitBtn1.Enabled := (( sListBox1.ItemIndex > -1 ) and ( sListBox2.ItemIndex > -1 ) and ( sListBox3.ItemIndex > -1 ) and ( sListBox4.ItemIndex > -1));


Boa sorte.
Responder

Gostei + 0

11/04/2012

Jhonnatas F

Obrigado!
Responder

Gostei + 0

11/04/2012

Jhonnatas F

Vish, o Botão ainda persiste em ficar desativado mesmo com as listas selecionadas:
http://i42.tinypic.com/4lhwg7.jpg
Responder

Gostei + 0

11/04/2012

Bruno Leandro

talvez seja o local que voce esta utilizando esta condição, me parece que voce colocou no oncreate, nesse momente ainda nao vai haver nenhuma opção marcada, tente criar um onchange no listview e faz com que os quatro listview execute esta condição
Responder

Gostei + 0

12/04/2012

Joel Rodrigues

Pra facilitar, você seleciona os 4 ListBox de uma vez, e no Object Inspector, ativa o evento onChenge.

Boa sorte.
Responder

Gostei + 0

12/04/2012

Jhonnatas F

Como faço isso? E insiro o que no OnChange?
Responder

Gostei + 0

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

Aceitar