Problema Debug Delphi - Alguém já solucionou?

24/06/2013

0

Bom dia a todos.

Trabalho com Delphi 7, e na unit datamodule, o break point parou de funcionado (funciona antes). Nas outras units funciona corretamente, li vários post na web e tentei alguns, mas não achei a solução.

Se alguém tiver alguma ideia.


1) Numero de linha na unit, minha tem 6.800;
2) Carácter de fim de linha CR+LF, faltando LF;
3) Número de componentes excessivos;

grato

Flávio
Flávio Campos

Flávio Campos

Responder

Post mais votado

29/11/2015

Exatamente. O problema do debug ocorre nisto. Porque o código compilado não corresponde as linhas de depuração do arquivo pas. A solução é procurar os caracteres estranhos ou faltando principalmente os CR e LF. Exatamente como um dos nossos amigos falou. Faça a conversão de um tipo de texto do UNIX e depois retorna ao tipo ANSI e solucionará o problema.

Já aconteceu também um caso mais grave comigo, o corrompimento do arquivo dfm que tinha caracteres estranhos e não havia em algumas linhas a quebra de linha e final de linha. O negocio ficou tão complicado que passei maior trabalho. Faça sempre backup de seus projetos sempre que for mudar algo.

Guilherme Wiethaus

Guilherme Wiethaus
Responder

Mais Posts

24/06/2013

Francisco Macário

Apague o .dcu respectivo.
Responder

25/06/2013

Guilherme Wiethaus

Exato como Macário falou. Apague todas as suas Dcu, exe, bpl ou qualquer outro arquivos de compilação feito pelo Delphi e então recompile-os novamente usando Build.

Abraços
Responder

25/06/2013

Flávio Campos

Prezados bom dia.

Já fiz isto, o problema esta que nas outras units o breakpoint funciona.
Mas valeu

Flavio
Responder

25/06/2013

Francisco Macário

Manda um print do breakpoint pra gente analisar.

Pois o procedimentod e remover o .dcu e build sempre corrige.
Responder

25/06/2013

Guilherme Wiethaus

Bom, já que falou numa outra possibilidade no início, pode sim acontecer. Inclusive já aconteceu como na versão 2007.

O Delphi fica todo marcado em vermelho as linhas indicando erro. Eu analisei e não achava nada. O problema era mais fundo, mas não percebível. A presença de caracteres estranhos e CR-LF faltando nas linhas eu peguei o arquivo .dfm e .pas levei para um editor que convertia as linhas no formato correto. Usei o NotePad++, converti para formato unix e depois reconverti para formato ANSI. Resolveu. So que isto acontecia o erro ao compilar diretamente ou depurar. Se na sua compilação ocorre erro e ele marca numa linha que não faz sentido, pode ser isto que esteja acontecendo. Um problema na hora de salvar o se projeto deu um erro. Outra mantenha sempre uma copia de seu projeto, pois uma hora o Delphi irá salvar o arquivo errado e perderá todo o form ou o pas. Já me aconteceu, experiência própria. Mantenha sempre versões sempre que termina uma.

Talvez isto não ajude, pois não sei como é a sua tela, sua execução e tal. Estou supondo que seja isto.

Abraços.
Responder

25/06/2013

Flávio Campos

Prezados boa noite.

Já tinha tentado, nos .pas, agora vou tentar no .dfm,

grato

Flavio

Responder

27/06/2013

Guilherme Wiethaus

Pensemos em outra solução. Nr. de componentes excessivos não pode ser, pois cada componente incluído gera um Create() interno e então é desalocado ao se fechar a aplicação. Claro que bons componentes.
Responder

27/06/2013

Guilherme Wiethaus

Dê mais detalhes sobre o problema no datamodule. Se chega o cursor ao ponto de parada, se chega a entrar no data module. Verifique se foi criado o data module, caso for criação dinâmica, e que não pode estar declarado na .dpr do projeto. Se a criação for estática, então a criação do Datamodule deve estar presente no arquivo .dpr e ser criado e chamado antes do formulário principal como mostra o exemplo abaixo.

{$R *.RES}
begin
  Application.Initialize;
  Application.CreateForm(TDataModule1, DataModule1);   
  Application.CreateForm(TForm1, Form1) ;
  Application.Run;
end. 


Verifique se na sua unit principal de seus forms se está declarado na clausula uses o datamodule.

Outro problema que eu detectei uma época é que a unit A era declarado na B e esta B eu usava na unit C. Na unit C chamava funções e procedimentos da unit A. Não encontrava o erro e tive problemas na depuração por conta disso. A unit A deveria estar declarado também na unit C. Não sei como, mas o Delphi encontrava as funções da unit A a qual não estava declarado na unit C o que não deveria já que não os declarei. E por isso gerava problemas de depuração e código.

Dê mais detalhes do seu problema.

Abraços.
Responder

27/06/2013

Flávio Campos

Boa tarde.

Neste projeto o debug no datamodule funcionava normalmente, nos outros formulários o debug anda funciona, e do nada parou de funcionar, não sei se é o número de linhas ou de objetos, o datamodule é criado automaticamente (dm).
Quando coloco o breakpoint por exemplo no evento "Oncreate" ele aceita (vermelho), mas quando compilo/execute a marcação do breakpoint fica uma bola menor com um "x" dentro, e antes ele para.
Se coloco um showMessage('Passou no OnCreate'), ele é exibido.
Em todos os post que li, nenhum tinha uma dica, abri o dfm como texto e com os caracteres especiais ligados mas não vi CR+LF um sem o outro....

Se tiverem mais sugestões vou tentar..,

grato.

Flavio

Application.Initialize;
Application.Title := 'Fapini 2012';
Application.HelpFile := '';
Application.CreateForm(Tdm, dm);
Application.CreateForm(Tfrm_Principal, frm_Principal);
Application.CreateForm(Tdmcep, dmcep);
Application.CreateForm(TfrmLoc, frmLoc);
Application.CreateForm(TfrmPadrao, frmPadrao);
Application.CreateForm(Trpt_Padrao, rpt_Padrao);
Application.Run;

procedure Tdm.DataModuleCreate(Sender: TObject);
begin

{Guardar as SQL dos Selects originais }
SQL_Cadastro := Cadastro.SelectSQL.Text;
SQL_Auxiliar_Detalhe := Auxiliar_Detalhe.SelectSQL.Text;
SQL_Produto := Produto.SelectSQL.Text;
SQL_Veiculos_Despesas := Veiculos_Despesas.SelectSQL.Text;
end;

Responder

28/11/2015

Helbert Ganef

Bom dia Galera!!!

Parece problema antigo mas sem uma solução exata pelo que acompanhei e tenho lido em vários lugares...
Estou com este mesmo problema e tudo que foi sugestão eu realizei e nada desse problema sumir...
Alguém tem alguma outra "magia" que possa tentar fazer? Tudo que foi coisas logicas e humanas eu tentei.. só falta as coisas ocultas e espirituais kkkkkk

Nem cogito abrir outro form para colocar tudo nesse novo form pq tem bastante componente e tem mais de 15 mil linhas... seria um parto.

Valeu galera, conto com a ajuda de vcs.. abraços

Helbert Ganef
Responder

12/09/2019

Francisco Pereira

Bom Dia,
consegui resolver apagando usando o del no final das linhas que tinha mexido, puxando a linha de baixo, e novamente colocando enter.

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