Como atribuir valor de uma variável a um DBLookupComboBox?

24/02/2006

0

Prezados colegas:

É possível atribuir o valor de uma variável (seja ela numérica, seja uma string) para um DBLookupComboBox? Ou que o componente em questão receba o valor de uma determinada coluna de um DBGrid? O inverso é fácil, mas até o momento não consegui encontrar nada a respeito... Agradeço desde já a atenção dispensada.


Spiritwwwalker

Spiritwwwalker

Responder

Posts

24/02/2006

Edilcimar

o dblookupcombobox serve apenas para ´olhar´ o que está em um bd, vc não pode fornecer-lhe um valor de uma variável, o que pode fazer é pegar o valor dde um campo da tabela e jogar no dblookupcombobox e também a uma variável


Responder

24/02/2006

Paullsoftware

pq ao invés de usar dblookupcombobox você não usa ComboBox, é bem mais simples você jogar os dados nele e depois tratar o valor selecionado na lista...


Responder

24/02/2006

Spiritwwwalker

Prezado Edilcimar:

Percebo que não há dificuldade em atribuir um valor ESPECÍFICO para um DBLookupComboBox, utilizando um comando como o abaixo:

DBLookupComboBox1.KeyValue := ´item desejado´

Mas gostaria de fazer o mesmo com uma opção ALEATÓRIA selecionada pelo usuário, a partir de um outro componente como, por exemplo, um DBGrid. Algo assim:

DBLookupComboBox1.KeyValue := DBGrid1.Fields[1].AsString
ou
DBLookupComboBox1.KeyValue := DBGrid1.Fields[1].AsVariant
ou
DBLookupComboBox1.KeyValue := VarToStr(DBGrid1.Fields[1].AsVariant)
ou
DBLookupComboBox1.KeyValue := MinhaVariavel


Contudo, as opções acima estão gerando o seguinte erro: ´Invalid variant type conversion´. Nota: todos os valores que desejo atribuir ao componente são registros ´nativos´ da tabela da qual ele está associado. A dúvida: é mesmo impossível atribuir um valor para um DBLookupComboBox dessa forma ou não estou conseguindo converte-lo para um tipo de dados aceito por ele?





Prezado Paull:

Efetuei testes com ComboBoxes e DBComboBoxes tão logo constatei o problema acima descrito. Aparentemente, eles não mais ´flexíveis´ nessa peculiaridade. Adoraria poder substituir meus DBLookupComboBoxes por qualquer um dos dois mas... Todos os componentes dos meus formulários possuem as propriedades Ctl3D = False e Height = 19. Já tentou alterar tais propriedades em Combos e DBCombos ultimamente? Ambos não aceitam altura inferior a 21 (aliás, nem superior). E a Ctl3D, mesmo atribuindo False, é solenemente ignorada. Estranhamente, DBLookupComboBoxes não padecem desses problemas... Um colega mais experiente em Delphi disse que isso decorre da versão do Windows instalada na estação de trabalho. Pode ser. Mas em VBA não enfrentava tais aberrações. A adoção de qualquer um dos componentes implicaria na alteração do layout de todos os meus formulários, visto que os demais componentes teriam que ficar parecidos com aqueles, e não o contrário. Uma tarefa não somente trabalhosa: o resultado estético também seria duvidoso e, ao menos para mim, a aparência dos sistemas é tão importante quanto a robustez e a exatidão do código empregado. Tenho um amigo que entende muitíssimo de programação, mas a verdade é que o visual dos programas dele é um lixo (risos). É claro que se não tiver outra opção, acabarei sendo obrigado a fazer exatamente isso. De qualquer forma, agradeço, mais uma vez, a sua sugestão.


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar