Fórum Combobox não fixa o valor escolhido em tempo de execução #587255
26/10/2017
0
Estou com uma rotina que o combobox adciona itens na sua lista em tempo real a partir de um determinado item "X" previamente selecionado no programa.
Entretanto, dependendo do item que for selecionado "x" ele faz o preenchimento deste combobox com diferentes valores.
Até aí, está tudo bem, pois o combobox consegue fazer a leitura e adcionar os itens necessários com base na escolha de "x".
O problema ocorre porque o combobox mostra a lista correta, mas não guarda os valores (não fica fixado o valor quando eu escolho no combobox), de modo que parece que o combobox se "limpa automaticamente" (coisa que não quero que aconteça) - fica parecendo que eu não selecionei nenhum item, mas ao selecionar o item que aparece, ele não grava e deixa em branco o combobox novamente.
Estou utilizando o seguinte código:
procedure TForm1.ComboBox4Change(Sender: TObject);
begin
if ComboBox4.ItemIndex = 0
Then Begin
Combobox3.Text:='';
ComboBox3.Items.Clear;
Combobox3.items.add('4.0 mm');
Combobox3.items.add('5.0 mm');
Combobox3.items.add('6.0 mm');
Combobox3.items.add('7.0 mm');
Combobox3.items.add('8.0 mm');
if ComboBox3.ItemIndex = 0
Then Begin
Asp:=12.6;
End;
if ComboBox3.ItemIndex = 1
Then Begin
Asp:=19.6;
End;
if ComboBox3.ItemIndex = 2
Then Begin
Asp:=28.3;
End;
if ComboBox3.ItemIndex = 3
Then Begin
Asp:=38.5;
End;
if ComboBox3.ItemIndex = 4
Then Begin
Asp:=50.3;
End;
End;
end;
Percebam que eu quero que o combobox3 dependendo do que for selecionado, guarde a variável "asp", do tipo real.
Podem, por gentileza, me ajudar a solucionar o problema?
Desde já, agradeço.
abs.
JD
Joao Df
Curtir tópico
+ 0Post mais votado
27/10/2017
Flavio Ferreira
Gostei + 1
Mais Posts
27/10/2017
Gabriel Baltazar
Ficaria algo como:
case ComboBox3.ItemIndex of 0 : Asp:=12.6; 1 : Asp:=19.6; .... end;
Agora pelo que observei você faz esses testes no Change de outro comboBox, no mesmo que você usa pra prencher. Pelo que entendi do seu código esse Case você deveria fazer no Change do ComboBox3, no Change do ComboBox4 ficaria só até a parte que você adiciona os itens
Gostei + 0
27/10/2017
Joao Df
procedure TForm1.ComboBox4Change(Sender: TObject);
begin
Combobox3.Items.Clear;
if ComboBox4.ItemIndex = 0
Then Begin
Combobox3.Text:='';
Combobox3.items.add('4.0 mm');
Combobox3.items.add('5.0 mm');
Combobox3.items.add('6.0 mm');
Combobox3.items.add('7.0 mm');
Combobox3.items.add('8.0 mm');
case ComboBox3.ItemIndex of
0 : Asp:=12.6;
1 : Asp:=19.6;
2 : Asp:=28.3;
3 : Asp:=38.5;
4 : Asp:=50.3;
end;
End;
if ComboBox4.ItemIndex = 1
Then Begin
if combobox2.ItemIndex = 0
then begin
Combobox3.items.add('6.4 mm');
Combobox3.items.add('7.9 mm');
Combobox3.items.add('9.5 mm');
Combobox3.items.add('11.0 mm');
Combobox3.items.add('12.7 mm');
Combobox3.items.add('15.2 mm');
case ComboBox3.ItemIndex of
0 : Asp:=24.5;
1 : Asp:=37.4;
2 : Asp:=52.3;
3 : Asp:=71.0;
4 : Asp:=94.2;
5 : Asp:=138.7;
end;
end
Else begin
Combobox3.items.add('9.5 mm');
Combobox3.items.add('11.0 mm');
Combobox3.items.add('12.7 mm');
Combobox3.items.add('15.2 mm');
case ComboBox3.ItemIndex of
0 : Asp:=54.8;
1 : Asp:=74.2;
2 : Asp:=98.7;
3 : Asp:=140.4;
end;
end;
End;
Memo1.Lines.add('A Area escolhida é de: '+ (FormatFloat('0.00',Asp)+' mm'));
end;
Entretanto, note que o problema ainda permanece... o Combobox3 não deixa ficar selecionado o item que eu quero...
E se eu retirar o item "clear" lá no começo... ele até deixa... mas ai ele fica rotinamente acrescentando as linhas do combobox3.
Consegue me ajudar com o caso?
Abração
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)