Analisador Léxico
Estou Desenvolvendo um analisador léxico para trabalho da faculdade... Já criei toda parte de Código para o analisador.. Uso Dois Memos.. Um para Código Fonte.. E o outro Serve para eu escrever uma palavra reservada... E um SpeedButton que serve para fazer a análise...
Só que esta dando este erro que não consegui resolver até agora..
Access Violation at address 004096F6 in module 'Project1.Exe'. Write of Address 00412cC8.
Estou usando um Strng Grid para armazenar os valores... Esta armazenando.... Percebi que quando clico no SpeedButon não está dando erro.. Quando escrevo qualquer coisa no MemoCódigo ai Sim Da o erro... Será algum problema no meu Código.....
Espero que minha pergunta tenha sido clara... E espero uma resposta... Desde já agradeço pela Atenção...
Só que esta dando este erro que não consegui resolver até agora..
Access Violation at address 004096F6 in module 'Project1.Exe'. Write of Address 00412cC8.
Estou usando um Strng Grid para armazenar os valores... Esta armazenando.... Percebi que quando clico no SpeedButon não está dando erro.. Quando escrevo qualquer coisa no MemoCódigo ai Sim Da o erro... Será algum problema no meu Código.....
Espero que minha pergunta tenha sido clara... E espero uma resposta... Desde já agradeço pela Atenção...
Valsistemasdelphi
Curtidas 0
Melhor post
Marcos P
03/06/2015
"Access Violation", via de regra no Delphi, indica que você está fazendo referência a um objeto que não existe ( ou existia e foi eliminado ).
Verifique as procedures relacionadas aos eventos do Memo em que o erro ocorre, ou, até mesmo, se o Memo não foi apagado ( por algum motivo fora de seu controle ).
Uma pesquisa aqui no DevMedia, vai lhe indicar vários casos similares ao seu !
Verifique as procedures relacionadas aos eventos do Memo em que o erro ocorre, ou, até mesmo, se o Memo não foi apagado ( por algum motivo fora de seu controle ).
Uma pesquisa aqui no DevMedia, vai lhe indicar vários casos similares ao seu !
GOSTEI 1
Mais Respostas
Valsistemasdelphi
03/06/2015
Valeu pela resposta já olhei todas as procedures não sei ao certo aonde está o erro já olhei todo o código mais não consegui encontrar aonde está o Erro...
Baixei um tal De FastMM... Pois fiz uma pesquisa e desconfio que seja na memória.. Ou seja algum código que eu tinha feito e precisei apagar ficou na memória e agora ele não encontra mais.... Mais não sei como usar este FastMM... Tentei aqui mais não deu certo.... Continuo achando que se trata no Código mesmo...Pois quando ele está em execução clico no button e não da nenhum erro... Ai quando eu adiciono um Código Fonte para ele analisar os Tokens Aparece a Tal Mensagem....
Baixei um tal De FastMM... Pois fiz uma pesquisa e desconfio que seja na memória.. Ou seja algum código que eu tinha feito e precisei apagar ficou na memória e agora ele não encontra mais.... Mais não sei como usar este FastMM... Tentei aqui mais não deu certo.... Continuo achando que se trata no Código mesmo...Pois quando ele está em execução clico no button e não da nenhum erro... Ai quando eu adiciono um Código Fonte para ele analisar os Tokens Aparece a Tal Mensagem....
GOSTEI 0
Valsistemasdelphi
03/06/2015
Valeu pela resposta já olhei todas as procedures não sei ao certo aonde está o erro já olhei todo o código mais não consegui encontrar aonde está o Erro...
Baixei um tal De FastMM... Pois fiz uma pesquisa e desconfio que seja na memória.. Ou seja algum código que eu tinha feito e precisei apagar ficou na memória e agora ele não encontra mais.... Mais não sei como usar este FastMM... Tentei aqui mais não deu certo.... Continuo achando que se trata no Código mesmo...Pois quando ele está em execução clico no button e não da nenhum erro... Ai quando eu adiciono um Código Fonte no Memo de Código para ele analisar os Tokens Aparece a Tal Mensagem....
Baixei um tal De FastMM... Pois fiz uma pesquisa e desconfio que seja na memória.. Ou seja algum código que eu tinha feito e precisei apagar ficou na memória e agora ele não encontra mais.... Mais não sei como usar este FastMM... Tentei aqui mais não deu certo.... Continuo achando que se trata no Código mesmo...Pois quando ele está em execução clico no button e não da nenhum erro... Ai quando eu adiciono um Código Fonte no Memo de Código para ele analisar os Tokens Aparece a Tal Mensagem....
GOSTEI 0
Valsistemasdelphi
03/06/2015
E Ai Marcos P, Consegui resolver meu problema no Analisador Léxico, Juntamente com uns colegas que programam em Delphi também aqui na facu... Analisando todo o código... o erro estava em uma referência no meu Código...
type
Ttoken = array [0..8] of String;
const
listtoken : Ttoken = (';', ':', ')', '(', '.', ']', '[', ':=', ',');
for I := 0 to length(listToken[I]) do
Bom eu fiz essa função Length que até então eu achava que o erro estava nela.. Pois deixei essa parte como texto //... Ai funcionava ... Só que ele não declarava todos os Tokens so o Begin... Ai descobrimos que essa função serve para dar referência a alguma Variável no Código... Que no nosso caso e o i....
Depois que colocamos o entre chaves para fazer referencia deu certo....
Obrigado Pela resposta foi de muita importância.. Pois como vc disse ,via de regra no Delphi, indica que você está fazendo referência a um objeto que não existe...
Abraço...
type
Ttoken = array [0..8] of String;
const
listtoken : Ttoken = (';', ':', ')', '(', '.', ']', '[', ':=', ',');
for I := 0 to length(listToken[I]) do
Bom eu fiz essa função Length que até então eu achava que o erro estava nela.. Pois deixei essa parte como texto //... Ai funcionava ... Só que ele não declarava todos os Tokens so o Begin... Ai descobrimos que essa função serve para dar referência a alguma Variável no Código... Que no nosso caso e o i....
Depois que colocamos o entre chaves para fazer referencia deu certo....
Obrigado Pela resposta foi de muita importância.. Pois como vc disse ,via de regra no Delphi, indica que você está fazendo referência a um objeto que não existe...
Abraço...
GOSTEI 0
Valsistemasdelphi
03/06/2015
Marcos P Estou desenvolvendo um Sistema para Projeto... Controle de lanchonete.... Estou com dificuldade na parte de relatório.... Tenho um código pronto com Dois Radios TRadio buttons..
if (Diário.Checked = true) then
begin
//pegar o periodo da data atual menos (-) 30 dias
Form4.Ibtable1.Active := False;
Form4.Ibtable1.filter := 'DATA_Venda >= ' + ''''+datetostr(now-30)+'''' + ' and ' +
'DATA <= ' + ''''+ datetostr(now)+'''';// pegar o periodo da data atual menos (-) 30 dias
Ibtable1.filtered := true;
IBTable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
end
else
if (Mensal.Checked= true) then
begin
Form4.Ibtable1.Active := false;
Form4.IBtable1.filter := 'DATA_Venda = ' + ''''+datetostr(now)+'''';// pegar a data atual do micro
IBtable1.filtered := true;
Ibtable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
exit; //Forçar a sair da rotina, ou vai executar o teste abaixo
Só que a data diária que foi feita por exemplo hoje.... Aparece misturada com a data mensal... Já fiz muita pesquisa aqui para descubriir outro jeito mais não consegui solucionar esse problema..... Se vc poder me ajudar ....
Abraços....
if (Diário.Checked = true) then
begin
//pegar o periodo da data atual menos (-) 30 dias
Form4.Ibtable1.Active := False;
Form4.Ibtable1.filter := 'DATA_Venda >= ' + ''''+datetostr(now-30)+'''' + ' and ' +
'DATA <= ' + ''''+ datetostr(now)+'''';// pegar o periodo da data atual menos (-) 30 dias
Ibtable1.filtered := true;
IBTable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
end
else
if (Mensal.Checked= true) then
begin
Form4.Ibtable1.Active := false;
Form4.IBtable1.filter := 'DATA_Venda = ' + ''''+datetostr(now)+'''';// pegar a data atual do micro
IBtable1.filtered := true;
Ibtable1.Active := true;
FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fp3');
FrxReport1.ShowReport() ;
exit; //Forçar a sair da rotina, ou vai executar o teste abaixo
Só que a data diária que foi feita por exemplo hoje.... Aparece misturada com a data mensal... Já fiz muita pesquisa aqui para descubriir outro jeito mais não consegui solucionar esse problema..... Se vc poder me ajudar ....
Abraços....
GOSTEI 0
Marcos P
03/06/2015
Estou "empenhado" nesse feriado...
Vejo isso na sequência.
Vejo isso na sequência.
GOSTEI 0
Valsistemasdelphi
03/06/2015
Obrigado Marcos no que vc poder me ajudar sobre a parte de Relatório eu te agradeço...
Abraço....
Abraço....
GOSTEI 0