Fórum Indexar item no combo pelo texto #518405

30/04/2015

0

Ola amigos,
estou com um seguinte problema:
tenho um combobox com itens pré estabelecidos, (estados do brasil) e cada novo registro, um item do combobox é gravado na base de dados.
até ai tudo bem, a informação é gravada normalmente.
o problema é quando abro tal registro da base de dados e tento indexar o item no combo através da informação que foi gravada na base de dados.
eu preciso mostrar a informação que esta na base de dados no text do combo, lembrando a propriedade style esta como csOwnerDrawFixed.


agradeço se alguém me ajudar.
Rogério Zek

Rogério Zek

Responder

Posts

30/04/2015

Thiago Santana

Rogério não seria mais interessante ao invés de gravar o nome do item, você gravar o código?
Acho que em termos de modelagem seu sistema estaria melhor projetado!
Mas vamos lá:


ComboBox1.Items.IndexOf(´seu texto´);



Vê se isso funciona!
Espero ter ajudado
Responder

Gostei + 0

05/06/2015

Rogério Zek

Olá Thiago,

Em relação a modelagem concordo com você amigo, mas o problema é mostrar a informação no combo.
vamos lá, no combo eu pré defini os itens com as siglas dos estados para que o usuário escolha somente entre aquelas siglas.
a, para que o usuário não entre com um valor diferente dos que eu pré defini eu setei a propriedade "style" do combo para "csOwnerDrawFixed", eu acredito que o problema esteja ai, pois com a propriedade setada para csDropDown funciona normalmente com o código que você postou acima.

ainda não consegue resolver o problema.


Grato e até mais.
Responder

Gostei + 0

05/06/2015

Alexsandro

Olá Rogério, não sei se você já está usando mas se não, seria melhor usar o componente TDBCombobox . que permite ser usado com datasource
Responder

Gostei + 0

05/06/2015

Rogério Zek

Olá Alexsandro, sim já usei o DBcombo também, mas o problema persiste quando seto a propriedade style para csOwnerDrawFixed, o problema esta ai, e eu seto esta propriedade para o usuário não entrar com valores diferentes aos que estão pré definidos nos itens do DBcombo.

Valeu Alexsandro, mas o problema persiste, rsrs.
Responder

Gostei + 0

05/06/2015

Alexsandro

ok...então eu faria assim...

no evento onshow do form, colocaria o seguinte código:

if suatabelaSeucampo.value = 'valor' then
begin
combobox.text := suatabelaSeucampo.value;
end;



Exemplo:

imagine que tenha uma tabela de aluno e nessa tabela tenha o campo situacao.

agora no formulário no evento onshow teria o código:

if tabelasituacao.value = 'Aprovado' then
begin
combobox1.text := tabelasituacao.value;
end
else if tabelasituacao.value = 'Reavalição' then
begin
combobox1.text := tabelasituacao.value;
end
else
begin
combobox1.text := tabelasituacao.value;
end;
Responder

Gostei + 0

05/06/2015

Ricardo Araujo

Colega não sei se você conseguiu resolver seu caso, mesmo assim estou disponibilizando a solução.

primeiro criar uma variável de retorno da função com combobox.

var
Num : integer;
begin

//agora vamos ao código abaixo, para receber os dados que estará vindo do banco de dados que seria o campo estado.

Num := ComboBox1.Items.IndexOf('PE') ; // neste campo aonde esta escrito (PE) seria o coluna com banco de dados.
ComboBox1.ItemIndex := Num;

end;

caro amigo espero ter ajudando, qualquer coisa segue email: rbbarreto@hotmail.com
Responder

Gostei + 0

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

Aceitar