ntDll X ComboBox sem Valor

29/05/2008

0

Pesquisei e achei um monte de colegas que enfrentaram o mesmo problema que estou enfrentando, ou seja, ocorrência de erro ´Access Violation .. error in modulo ntdll.dll...´, mas não encontrei nenhuma solução.

Me parece ser um problema de Windows versão da biblioteca que gera um conflito com o componente Tcombobox, mas só quando ele tem um ´index´ sem valor.

Alguém tem alguma luz?

Obrigado.


Armindo

Armindo

Responder

Posts

29/05/2008

Mazzi

Oi, me responde uma coisa.. o que vc esta usando?


Responder

29/05/2008

Armindo

Oi, me responde uma coisa.. o que vc esta usando?


Desculpe, não entendi a pergunta. A dúvida seria em relação à linguagem?
Uso D7, FB 2.0 e um componente TCombobox com três items na sua propridade items: o primeiro item é uma linha em branco, o segundo é o termo ´Interno´ e o último ´Externo´.


Responder

29/05/2008

Bico

Ola colega.

Não sei se entendi corretamente o que você quis dizer, mas vamos lá.

Tive problemas no uso do combobox, pois listava um conjunto de registros do banco de dados e tinha que exibir a opção ´Todos´ (que não estava incluída no banco de dados) como o primeiro item da combobox. Quando um item desta lista de registros estava com a descrição em branco, ocorria um erro - não me recordo exatamente a mensagem de erro. A única forma que encontrei para solucionar o problema foi testar o conteúdo do registro antes de incluí-lo na combobox. Se o conteúdo do campo estiver em branco, incluo um traço ´-´. Nunca mais tive problema.

Atenciosamente,
Fernando.


Responder

29/05/2008

Massuda

...componente Tcombobox, mas só quando ele tem um ´index´ sem valor.
O que você quer dizer com isso? Que o combo está vazio ou que não tem item selecionado?

Access Violation geralmente está relacionado com tentativas de utilizar objetos que não foram criados ou que já foram destruídos (automaticamente ou não) em algum ponto do programa.


Responder

29/05/2008

Armindo

Obrigado pelas respostas colegas.

Descobri a causa: o problema ocorre ou não, dependendo do tema da área de trabalho configurada no windows. Se você deixar como ´Estilo XP´ o erro não acontece. Que loucura! Se alguém me dissesse isso, eu o chamaria de louco. Hehe! Mas é exatamente isso, fiz vários testes e o problema é o tema do Windows que gera algum conflito nessa dll quando uma TComboBox tem um items sem valor.

Para resolver temporariamente, coloquei um espaço na linha que preciso deixar em branco da TcomboBox.
Logicamente que isso é uma medida apenas paleativa, pois, se essa .dll tem alguma função que ´ser perde´ quando uma TcomboBox tem uma linha em branco e quando determinado tema está configurado no Widnows, é provável que tenha outros ´furos´, como por exemplo ocorrer um erro quando o usuário utilizar o sistema em uma máquina com o Vista e no momento de entrar no programa for de noite e estiver chovendo. Hehe! Brincadeirinha..., mas é mais ou menos isso.

Se algum colega tiver uma solução definitiva, por gentileza, deixe-a aqui descrita.

Gracias amigos!


Responder

29/05/2008

Armindo

[quote:82d384a804=´Armindo´]...componente Tcombobox, mas só quando ele tem um ´index´ sem valor.
O que você quer dizer com isso? Que o combo está vazio ou que não tem item selecionado?

Access Violation geralmente está relacionado com tentativas de utilizar objetos que não foram criados ou que já foram destruídos (automaticamente ou não) em algum ponto do programa.[/quote:82d384a804]

Abra uma novo projeto e coloque um TComboBox no seu. Depois edite sua propriedade ´Items´. na tela de inserção dos itens, dê um enter para que a primeira linha fique em branco. Então, na segunda e terceira linha coloque duas opções.
Isso fará com que o componente apresente três opções para o usuário, mas mesmo que usuário não selecione nada nessa TCombobox, o erro ocorrerá igual. O componente só precisa estar na aplicação e configurado dessa forma.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar