Fórum Firemonkey: Ler a propriedade SelectedValue de um combobox ou listbox #479558
20/05/2014
0
Estou utilizando Delphi XE5 e num projeto Firemonkey Desktop não consigo ler a propriedade SelectedValue de um combobox ou listbox.
Para exemplificar criei um projeto simples, utilizando um PrototypeBindSource como fonte de dados, um combobox, um botão e um label, onde via livebindings liguei
o campo ColorsName1 (campo com o texto a ser apresentado) a propriedade Item.text do combobox e o campo AlphaColor1 (campo id a ser retornado) a propriedade Item.LookupData e para que seja retornado o id ao label, liguei a propriedade SelectedValue do combo a propriedade Text do label. Estes relacionamentos pode ser observado na figura abaixo:
[img:descricao=LiveBindings Designer e Formulário em Run Time]http://arquivo.devmedia.com.br/forum/imagem/330322-20140520-130408.jpg[/img]
O Problema é que não consigo ler via código a propriedade SelectedValue do combo box.
O Mais proximo que cheguei foi:
if Assigned(ComboBox1.Selected) then
ShowMessage(IntToStr(Integer(ComboBox1.Selected.Data)));
ou
ShowMessage(ComboBox1.ListItems[ComboBox1.ItemIndex].ItemData.Text);
Mas estão retornando vazio ao invés do id do registro.
Agradeço a quem poder ajudar.
Tecnolens Ltda
Curtir tópico
+ 0Post mais votado
01/09/2014
Espero ter ajudado!
Abraço a todos!
éder Brandão
Gostei + 1
Mais Posts
20/05/2014
Cauê Nishijima
if Assigned(ComboBox1.Selected) then
ShowMessage(ComboBox1.Selected.Text);
Gostei + 0
20/05/2014
Cauê Nishijima
Se for, posta o código de como você esta atribuindo os valores ao ComboBox ou ao ListBox
Gostei + 0
22/05/2014
Tecnolens Ltda
Preciso ler o ID do registro selecionado, acredito ser da mesma forma para ComboBox ou ListBox. Quando a atribuição dos valores, fiz através do LiveBindings como mostra a figura.
Por exemplo, quando selecionar no combo Mediumvioletred, deve ler o id 4291237253, que corresponde ao ID do item selecionado.
Abraço!
Gostei + 0
23/06/2014
Claudia Fuzer
Você conseguiu resolver este problema? To enfrentando o mesmo aqui e até agora nada.
Gostei + 0
24/10/2015
Junior Dias
Espero ter ajudado!
Abraço a todos!
Bom dia Éder, estou fazendo como você sugeriu, ligando a propriedade Synch do Lisbox ao (*) do BindSource, compilando para windows funciona, porem no android não. Sabe me dizer se muda alguma coisa? Estou usando a propriedade OnItemClick do Lisbox.
Gostei + 0
07/04/2016
Clederson Ferreira
ShowMessage(ComboBox1.Items[ComboBox1.ItemIndex]);
tenta fazer assim
Gostei + 0
28/12/2016
Flex Ltda
Cara tô com o "mesmissimo" problema...como você resolveu isso?
Gostei + 0
22/04/2017
Alexandre Santos
procedure TForm1.Button1Click(Sender: TObject);
var
item: String;
begin
{ OBS: se o estilo do ComboBox for csDropDown, o
usuário será capaz de digitar no componente. Se
isso acontecer, o conteúdo do combo deverá ser
obtido usando:
item := ComboBox1.Text;
}
item := ComboBox1.Items[ComboBox1.ItemIndex];
ShowMessage('Você selecionou o ítem ' + item);
end;Gostei + 0
22/04/2017
Alexandre Santos
No Firemonkey pode-se fazer assim:
Texto := (cbDB.Items.Names[cbDB.ItemIndex]);
Creio que seja apenas isto... No mais... A partir daqui já da pra ter uma noção de que é preciso acessar a propriedade "Names" dos itens e pegar o nome que estiver no índice....
Gostei + 0
30/08/2017
Antonio Junior
Espero ter ajudado!
Abraço a todos!
Bom dia. Eu estou passando pela mesma situação e segui o seu exemplo. liguei a propriedade Synch do ListBox e ligar ao (*) asterisco do BindSource, e agora como faço para usar?
Estou usando combobox e quando selecionar algum item quero obter o id desse item, como fazer isso? Fico no aguardo. Obrigado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)