ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Como capturar o id de um combobox?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Ago 02, 2019 3:15 pm    Assunto: Como capturar o id de um combobox? Responder com Citação

Como capturar o id de um combobox?

Quero digitar o nome e recuperar o id?

Tentei assim, mais não da certo

Código:
DM.FDQueryTmp.Close;
  DM.FDQueryTmp.SQL.Clear;
  DM.FDQueryTmp.SQL.Text :=
      ' SELECT * FROM parceiro   ';
  DM.FDQueryTmp.Open;

// // cbParceiro.Items.Clear;
  DM.FDQueryTmp.First;
  while not DM.FDQueryTmp.Eof do
  begin

    iIndice := cbParceiro.ItemIndex;//iIndice é variável explicativa

    cbParceiro.Items.AddObject(
      DM.FDQueryTmp.FieldByName('descricao').AsString,
         TObject(DM.FDQueryTmp.FieldByName('idparceiro').AsInteger));
    DM.FDQueryTmp.Next;
  end;


  FEquipe.parceiro_idparceiro  := Integer(cbParceiro.Items.Objects[iIndice]); {recuperando o valor armazenado}


Vou gravar este id da tabela parceiro para outra tabela chamada equipe

Tambem quero depois quando consultar pelo id gravado na tabela equipe trazer no combobox o nome gravado na tabela parceiro.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Sex Ago 02, 2019 5:53 pm    Assunto: Responder com Citação

Adriano dê uma olhada neste link, o médio é parecido e deve te ajudar:


http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/StdCtrls_TComboBox_Items.html



Se você não conseguir, eu verifico para você em casa, pois aqui não tenho acesso ao delphi.




bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Ago 05, 2019 8:28 am    Assunto: Responder com Citação

johnny-walker escreveu:
Adriano dê uma olhada neste link, o médio é parecido e deve te ajudar:


http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/StdCtrls_TComboBox_Items.html



Se você não conseguir, eu verifico para você em casa, pois aqui não tenho acesso ao delphi.




bye
Bom dia johnny-walker, então eu não entendi não o codigo do link amigo.

Estou usando apenas um combobox com os dados da tabela no seus items

Obrigado.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
ric_rio2
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 1 de Outubro de 2018
Mensagens: 108

MensagemEnviada: Seg Ago 05, 2019 10:14 am    Assunto: Responder com Citação

Bom dia Smile
Cara..
Aparentemente esta tudo certo..
Só que não pode estar tudo dentro de uma mesma procedure como parece estar..

Tipo..Exemplo de como PODERIA SER
No OnCreate do Form
Código:
begin
  DM.FDQueryTmp.Close;
  DM.FDQueryTmp.SQL.Clear;
  DM.FDQueryTmp.SQL.Text :=
      ' SELECT * FROM parceiro   ';
  DM.FDQueryTmp.Open;

 cbParceiro.Items.Clear;
 DM.FDQueryTmp.First;
 while not DM.FDQueryTmp.Eof do
  begin   
    cbParceiro.Items.AddObject(
            DM.FDQueryTmp.FieldByName('descricao').AsString,
           TObject(DM.FDQueryTmp.FieldByName('idparceiro').AsInteger));
          DM.FDQueryTmp.Next;
    end;
end


No OnChenge ou OnExit (a gosto do cliente) do COMBO
Código:
 Var
     FEquipe.parceiro_idparceiro : Integer;
begin
   FEquipe.parceiro_idparceiro  := Integer(cbParceiro.Items.Objects[ComboBox.ItemIndex]); {recuperando o valor armazenado}
end;


Mas como falei... aparentemente esta tudo certo.. eu uso isso direito Smile
Qualquer coisa é só falar Smile
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Ago 05, 2019 10:55 am    Assunto: Responder com Citação

ric_rio2 escreveu:
Bom dia Smile
Cara..
Aparentemente esta tudo certo..
Só que não pode estar tudo dentro de uma mesma procedure como parece estar..

Tipo..Exemplo de como PODERIA SER
No OnCreate do Form
Código:
begin
  DM.FDQueryTmp.Close;
  DM.FDQueryTmp.SQL.Clear;
  DM.FDQueryTmp.SQL.Text :=
      ' SELECT * FROM parceiro   ';
  DM.FDQueryTmp.Open;

 cbParceiro.Items.Clear;
 DM.FDQueryTmp.First;
 while not DM.FDQueryTmp.Eof do
  begin   
    cbParceiro.Items.AddObject(
            DM.FDQueryTmp.FieldByName('descricao').AsString,
           TObject(DM.FDQueryTmp.FieldByName('idparceiro').AsInteger));
          DM.FDQueryTmp.Next;
    end;
end


No OnChenge ou OnExit (a gosto do cliente) do COMBO
Código:
 Var
     FEquipe.parceiro_idparceiro : Integer;
begin
   FEquipe.parceiro_idparceiro  := Integer(cbParceiro.Items.Objects[ComboBox.ItemIndex]); {recuperando o valor armazenado}
end;


Mas como falei... aparentemente esta tudo certo.. eu uso isso direito Smile
Qualquer coisa é só falar Smile


Putz era isso mesmo ric_rio2. Muito obrigado. Agora para eu trazer neste combobox o texto cfe o ID como faço?
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Ago 05, 2019 11:18 am    Assunto: Responder com Citação

Bom dia, já resolvi também

Código:
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(FEquipe.descricaoparceiro);
    edtParceiro.Text := FEquipe.descricaoparceiro;


Muito obrigado
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Ter Ago 06, 2019 1:14 pm    Assunto: Responder com Citação

Se a empresa utiliza o jedi, eu utilizaria o jvdbcombobox e preencheria os items e values.
O bom de você adotar este componente é que no máximo você precisa preencher os dados sem se preocupar em liberar a memória depois.
No seu caso é necessário liberar a memória, pois você está lidando com ponteiros para objetos, pois caso contrário você acaba com leaks de memória.
O componente acima eu o utilizo, acho muito mais simples, mas entendo que em empresas nem sempre isto é possível.

Estou sem acesso, vou te passar outro código que ficará mais claro para você.



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
ric_rio2
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 1 de Outubro de 2018
Mensagens: 108

MensagemEnviada: Qua Ago 07, 2019 6:49 am    Assunto: Responder com Citação

Bom dia johnny-walker Smile

Como disse anteriormente eu sempre uso esse código e nunca tive a preocupação com a memória. Simplesmente ao sair do form dou FreeAndNil(Form).

Como seria "limpar a memoria" para esse código do combobox?? Rolling Eyes

Em tempo..
estou usando o ReportMemoryLeaksOnshutDown:= True; e ao sair do projeto quando deixo de fechar ou liberar algum objeto, sempre me da uma mensagem de vazamento de memoria.. ( muito legal essa parada no delphi xx Smile no delphi 7 não tinha isso ).
Ao usar esse código não me retorna nada ao sair do form ou/e projeto.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Sex Ago 30, 2019 7:51 am    Assunto: Responder com Citação

Neste exemplo explicita mais ou menos a situação:


https://www.devmedia.com.br/criando-um-objeto-tstring-no-delphi/2197




bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB