Amigo,

O Delphi te passa uma informação de suma importância: O TIPO DO ERRO!

A partir daí, você pode filtrar uma porção de coisas. Como no caso que você
disse (of bound), possívelmente em algum lugar em sua aplicação tem algum
índice estourado. Depure com F7, deve resolver.

Os erros de Acces Violation, são os mais comuns.
Este erros acontecem quando você está tentando acessar algum lugar errado da
memória, ou quando tenta acessar um objeto não criado / já destruído. E
quando o erro é de alguma dessas causas, raramente o Delphi vai mostrar a
linha de código.

Os componentes não são criados instantâneamente; segue-se a ordem
especificada na "receita de bolo". O que vc tem que fazer é verificar a
ordem e reorganizá-la:
Por exemplo:

TableMestre X TableFilha

Qual deve ser criada primeiro? TableMestre, pq TableFilha acessa dados dela.

Logo, no DataModule verifique o CreationOrder!

Verifique também a ordem de criação dos formulário (se estes forem criados 
automaticamente), assim como dos DataModules. Objetos Dependentes devem ser 
sempre criados depois do qual eles dependende. Sem exceção.

Outro problema está na manipulação de eventos nos DataSources, Fields, 
Eventos do tipo OnChange em geral.
Uma boa pedida e verificar se os objetos envolvidos no evento estão 
instanciados. Outra coisa importante também é verificar se as fontes de 
dados estão fechadas. Isso costuma provocar bug's difíceis de se encontrar.

Geralmente esses cuidados minimizam os erros. Sofri mto tempo procurando um 
erro de Access Violation, até descobrir que tinha que deixar o conection 
fechado.

Ah! Bem lembrado! Geralmente o fato de se abrir um Form antes do DataModule 
que contém os componentes de acesso faz com que se perca a ligação entre os 
componentes (Mesma Situação Objeto Filho sendo instanciado primeiro que o 
Objeto Pai). Você tem duas opções:
1- Escreve as ligações, atribuindo os componentes em tempo de execução (eu 
faço isso)
2- Faça com que o Delphi abre primeiro os DataModules

Fora isso, "sem chance"


t+

espero ter ajudado

Francisco Thiago de Almeida
Enter & Plug Informática
Divisão: Desenvolvimento e Banco de dados
Franca / SP
msn: [EMAIL PROTECTED]

----- Original Message ----- 
From: "Jônatas Renan" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>; <delphi-br@yahoogrupos.com.br>
Sent: Wednesday, January 11, 2006 3:04 PM
Subject: [delphi-br] Delphi, nossos programas e "Os Erros"


A maioria dos erros possíveis de ser encontrados em programas
são realmente muito facil de serem resolvidos
o real problema é quando temos erros onde o delphi não nos mostra
a linha de código onde ele está e simplesmente ao fechar a janela ou
o programa ele gera um erro

No meu caso tenho um EAccessViolation entre o meu form de login e
meu form principal e ao finalizar o programa
e tenho um (este parece ser mais facil e se não me engano é) Out of Bounds
(-1)
ao fechar uma dos form mdichild.

Como devemos proceder para encontrar os erros gerados pelos nossos programas
principalmente quando não é dita a linha onde está o erro...

Há algum Passo a Passo para tratamento de erros?
Eu utilizo a função geral de tratamentos de erros:

# // no delphi
#procedure TfPrincipal.FormCreate(Sender: TObject);
#begin
#Application.OnException:=Erro;
#...

#//declaração da função
#procedure TfPrincipal.Erro(Sender: TObject; E: Exception);
#begin
#...

Oque eu posso fazer para Prevenir erros que são de programação e não
tratá-los depois de terem acontecidos?
e é este o melhor caminho?

Desde já grato por mais esta contribuição pois sei que prontamente estarão
para ajudar nos mermos mortais e
filhos desta dinastia chamada Borland.

 =====================
  Jônatas Renan - Freaker
MSN: [EMAIL PROTECTED]
 =====================


[As partes desta mensagem que não continham texto foram removidas]





-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>



Links do Yahoo! Grupos









        

        
                
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a