13 Comentários

  1. Renato

    Felipe, obrigado pelo vídeo. Fiquei com a seguinte dúvida:
    caso eu já tenha a informação gravada no banco e queira retornar esta informação para a tela, como eu faria para que o DBLookUpComboBox exiba esta informação? Fiz da seguinte forma, porém o campo permanece em branco:

    IBQProd.Close;
    IBQProd.SQL.Clear;
    IBQProd.SQL.Add(‘select * from Produtos where CDPRO = :CDPRO’);
    IBQProd.ParamByName(‘CDPRO’).AsInteger:=StrToInt(CodProduto.Text);
    IBQProd.Open;
    cbSetor.KeyValue:=IBQProd.FieldByName(‘SETOR’).Value;

    Se puder me ajudar, agradeço muito.
    Obrigado.
    Abraço.


  2. Fala Renato!
    De nada, eu que agradeço pela visita. 🙂

    Cara, está certo o jeito como está fazendo. Se o seu IBQProd estiver retornando o “Setor” corretamente na sua consulta, pelo seu código teria que estar funcionando sim (contanto que o seu DBLookUpComboBox esteja ligado na sua tabela de setores). Você pode testar o seguinte também: IBQProd.FieldByName(‘SETOR’).AsString. Faz essa “conversão” pra String ao invés do Value. Não sei se é da versão do Delphi ou a falta de alguma biblioteca, mas em alguns casos o DBLookUpComboBox só reconhece o KeyValue quando o valor passado é do tipo String. Qualquer coisa é só escrever.
    Abraços!

  3. Renato

    Obrigado pela atenção, Felipe. O problema é que a informação que estava alimentando o LookUp não era do mesmo tamanho que a que vinha da outra tabela. Tinha uns espaços. daí fiz o ajuste e funcionou certinho. Obrigado mais uma vez pelo vídeo. Abraço.

  4. Fábio Machado

    Obrigado amigo!

    Estou voltando a mexer com Delphi, depois de mais de 15 anos parado. Já viu, né…
    Aproveitando a oportunidade: o pessoal critica bastante o Paradox. É mesmo ruim? Vc sabe onde encontro material didático para me orientar na migração para um sistema melhor?

    Abraço


  5. Oi Fábio, tudo bem? Obrigado pela visita!
    Seja bem-vindo novamente, programar em Delphi é sempre muito interessante. O Paradox é um banco de dados bem antigo que segurou a peteca durante muitos anos. Conheço alguns sistemas que ainda utilizam Paradox. É um banco de dados relacional baseado em tabelas, mas tem alguns pontos fracos relevantes. O fato de não ser um banco de dados Cliente/Servidor e a alta taxa de corrupção de índices são um deles. Já que você está retornando ao Delphi, recomendo utilizar o Firebird ou MySQL por exemplo. Aqui no blog eu ensino muita coisa sobre Delphi + Firebird. E no Google tem muito material também. Dá uma olhada em fóruns, é só se cadastrar e tirar suas dúvidas, a comunidade Delphi é muito solícita. Espero que tenha ajudado. Um forte abraço!

  6. Helton Garido

    Bom dia meu caro Felipe Machado, estou com um problema com o DBLookupComboBox ele só lista uma linha, gostaria que ele lista mais linhas, ele só lista as linhas quando eu clico nas setas de direção aí sim quando eu clico é que aparece as linhas.

    Eu já queria que aparecesse as linhas ao clicar de primeira..


  7. Oi Helton, bom dia! Qual tipo de DataSet você está utilizando? Verifica se a tabela está sendo aberta por completo, alguns DataSets guardam em memória e só carregam os registros quando necessário. Você pode testar dando um DataSet.FetchAll ou DataSet.Last. Verifique também a propriedade “DropDownRows” do DBLookupComboBox. Abraços!


  8. Amigo uma dúvida. Vamos supor que eu tenha feito tudo isso em um cadastro de um cliente e agora eu preciso editar esse cadastro, de que forma eu carrego o que eu escolhi no dia em que eu cadastrei. No caso se eu coloquei uma profissão e depois quero alterar ela, na DBlookupcombobox vem listada as profissões da tabela profissões, só que na alteração precisa vir a opção que eu escolhi no dia em que eu cadastrei.


  9. Amigo já vou deixar a resposta do que eu mesmo perguntei…rsrsrssrs Acabei quebrando um pouco a cabeça aqui e consegui. Vou deixar o exemplo de no caso precisar carregar um cadastro que já tenha sido feito.

    DblookupCombobox.Keyvalue := suatabela.fieldbyname(‘campo’).asstring;

    E no onEnter do DBLookUpcombobox você faz uma consulta para carregar todos os dados do seu listfield
    Se precisar deixar ele parado em alguma posição, pode usar também a propriedade ListFieldIndex e colocar o numero da posição.

    Espero ter ajuda caso alguém precisar…. Abraços


  10. Oi Jeferson, se o DBLookupComboBox estiver ligado no campo profissão do seu dataset ele será carregado automaticamente, mas se estiver usando o DBLookupComboBox apenas como lista você terá que passar a profissão no campo KeyValue do DBLookupComboBox. Abraços!

  11. NELSON MOURA

    Ola.
    Como saber se o usuário não escolheu nenhum item do DbLookUpCombobox?
    tipo Se nenhum item selecionado….
    ShowMessage(‘Por favor, escolha a cidade’);
    Eu prefiro que o combo seja apresentado sem nenhuma escolha, a fim de não induzir o usuário a conformar algo por acidente.

    Grato
    Nelson


  12. Olá Nelson, desculpe a demora, tive uns problemas particulares e me afastei um pouco. Acredito que já tenha encontrado a solução, mas vou responder assim mesmo para poder ajudar a outras pessoas também.

    Basta você fazer da seguinte forma:

    if DbLookUpCombobox.Text=” then
    begin
    ShowMessage(‘Por favor, escolha a cidade’);
    DbLookUpCombobox.Setfocus;
    Exit;
    end;

    Abraços!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *