varias procedures
Estou com um problema e nao estou acahando uma solucao
tenho varias procedures e chamo-as em sequencia o problema é que tive debugando
e percebi que elas nao terminam a sua execucao e ja pula pra outra o que pode ser isso
segue exeplo de como chamo as procedures
ImportaGrid;
ImportaGrid_Colunas;
ImportaGrid_Linhas;
ImportaGrid_Prod;
Acontece que por exemplo nao terminou de executar a primeira procedure
e ele ja comeca executar a segunda e ai da conflitos
tenho varias procedures e chamo-as em sequencia o problema é que tive debugando
e percebi que elas nao terminam a sua execucao e ja pula pra outra o que pode ser isso
segue exeplo de como chamo as procedures
ImportaGrid;
ImportaGrid_Colunas;
ImportaGrid_Linhas;
ImportaGrid_Prod;
Acontece que por exemplo nao terminou de executar a primeira procedure
e ele ja comeca executar a segunda e ai da conflitos
Volmir Santos
Curtidas 0
Respostas
Guilherme Wiethaus
24/05/2013
Meu querido,
Se for uma Bpl que voce construiu, não ponha em execução direto, primeiramente faça o Build manual dele e não somente o compile. Isto porque as dcu ou a imagem para depuração não deve estar atualizadas. Construa (dê um Build) novamente sua dll, bpl e depois o seu executável. Se isto não resolver delete todas as dcu, dcp, bpl, dll e exe e recompile novamente.
Abraços.
Se for uma Bpl que voce construiu, não ponha em execução direto, primeiramente faça o Build manual dele e não somente o compile. Isto porque as dcu ou a imagem para depuração não deve estar atualizadas. Construa (dê um Build) novamente sua dll, bpl e depois o seu executável. Se isto não resolver delete todas as dcu, dcp, bpl, dll e exe e recompile novamente.
Abraços.
GOSTEI 0
Volmir Santos
24/05/2013
Meu querido,
Se for uma Bpl que voce construiu, não ponha em execução direto, primeiramente faça o Build manual dele e não somente o compile. Isto porque as dcu ou a imagem para depuração não deve estar atualizadas. Construa (dê um Build) novamente sua dll, bpl e depois o seu executável. Se isto não resolver delete todas as dcu, dcp, bpl, dll e exe e recompile novamente.
Abraços.
Se for uma Bpl que voce construiu, não ponha em execução direto, primeiramente faça o Build manual dele e não somente o compile. Isto porque as dcu ou a imagem para depuração não deve estar atualizadas. Construa (dê um Build) novamente sua dll, bpl e depois o seu executável. Se isto não resolver delete todas as dcu, dcp, bpl, dll e exe e recompile novamente.
Abraços.
Ja fiz todo este processo reiniciei o micro e nada de resolver o problema continua
GOSTEI 0
Guilherme Wiethaus
24/05/2013
Vê os seguinte, isto já me aconteceu antes, a muito tempo:
Comigo aconteceu algo parecido, por exemplo, eu tinha todo o projeto e fiz uma cópia dele para outro lugar, na mesma unidade, e passei a utilizar ele nesta mesma unidade na nova pasta. O Delphi, tem uma mania de guardar dentro do arquivo de projeto dele (depende da versão do Delphi) ou de grupo o caminho completo e não o relativo. Você pode estar pegando a compilação de um lugar e o pas de outro. Verifique isto. Renomeia o diretório do seu projeto original (pôe um "_" na frente) e abre de novo o seu projeto. Estou falando se for neste caso se fez a cópia e esta usando da cópia o seu novo projeto.
Outra situação, se a declaração da unit você está pegando de um lugar sua função o que na verdade deveria ser de outra unit. Você declarou a função em 2 units e esta usando da errada.
Outro caso, pode acontecer também que a unit A, a que você está usando, chama a unit B a qual possui a sua funcao. Pode acontecer que o Delphi compilou a unit A, mas a B não foi recompilada (dcu) a sua função principal esta usando da unit B ao invés de tê-la compilado, isto faz com que você tenha a depuração de um e o .pas de outro..entende?
unit
A,
B;
Me posicione melhor o seu caso, você usa bpl, dll, ou um executável único?
Abraços
Comigo aconteceu algo parecido, por exemplo, eu tinha todo o projeto e fiz uma cópia dele para outro lugar, na mesma unidade, e passei a utilizar ele nesta mesma unidade na nova pasta. O Delphi, tem uma mania de guardar dentro do arquivo de projeto dele (depende da versão do Delphi) ou de grupo o caminho completo e não o relativo. Você pode estar pegando a compilação de um lugar e o pas de outro. Verifique isto. Renomeia o diretório do seu projeto original (pôe um "_" na frente) e abre de novo o seu projeto. Estou falando se for neste caso se fez a cópia e esta usando da cópia o seu novo projeto.
Outra situação, se a declaração da unit você está pegando de um lugar sua função o que na verdade deveria ser de outra unit. Você declarou a função em 2 units e esta usando da errada.
Outro caso, pode acontecer também que a unit A, a que você está usando, chama a unit B a qual possui a sua funcao. Pode acontecer que o Delphi compilou a unit A, mas a B não foi recompilada (dcu) a sua função principal esta usando da unit B ao invés de tê-la compilado, isto faz com que você tenha a depuração de um e o .pas de outro..entende?
unit
A,
B;
Me posicione melhor o seu caso, você usa bpl, dll, ou um executável único?
Abraços
GOSTEI 0
Volmir Santos
24/05/2013
eu uso um executavel unico
GOSTEI 0
Volmir Santos
24/05/2013
eu uso um executavel unico
GOSTEI 0
Guilherme Wiethaus
24/05/2013
Acho que entendi...
Você está executando no passo que já dentro de uma procedure, e em qualquer momento da execução, escapa e pula para a outra ? é isso?
Bom algumas razões para isto:
Primeiro que pode estar acontecendo uma exceção não tratável. Ponha um ponto de depuração no On E:Exception ....e veja se o salto vai para este ponto. Deve ver se as configurações de seu depurador está sendo tratado pelo Delphi ou pelo software, isso se verifica nas opções do Delphi para ativar este modo. Se você desmarcou a depuração pelo gerenciador do Delphi, se ocorrer uma exceção nenhuma mensagem aparece e o erro escapa da execução sem que você perceba o que tenha acontecido, claro, se você não tratou com um bloco de exceção.
Eu não posso adivinhar as coisas se você não colocar em detalhes o que está fazendo. Procure ser mais detalhista nos seus passos para que tanto eu como outros possam te ajudar. Existem inúmeras de possibilidades que pode acontecer. Qualquer outra cosia é pura especulação.
Abraços.
Você está executando no passo que já dentro de uma procedure, e em qualquer momento da execução, escapa e pula para a outra ? é isso?
Bom algumas razões para isto:
Primeiro que pode estar acontecendo uma exceção não tratável. Ponha um ponto de depuração no On E:Exception ....e veja se o salto vai para este ponto. Deve ver se as configurações de seu depurador está sendo tratado pelo Delphi ou pelo software, isso se verifica nas opções do Delphi para ativar este modo. Se você desmarcou a depuração pelo gerenciador do Delphi, se ocorrer uma exceção nenhuma mensagem aparece e o erro escapa da execução sem que você perceba o que tenha acontecido, claro, se você não tratou com um bloco de exceção.
Eu não posso adivinhar as coisas se você não colocar em detalhes o que está fazendo. Procure ser mais detalhista nos seus passos para que tanto eu como outros possam te ajudar. Existem inúmeras de possibilidades que pode acontecer. Qualquer outra cosia é pura especulação.
Abraços.
GOSTEI 0
Thiago Santana
24/05/2013
Tente tratar fazendo o lançamento de exceções!
Pois se caso pular de uma procedure pra outra e for um erro o sistema
irá te reportar o erro!
Pois se caso pular de uma procedure pra outra e for um erro o sistema
irá te reportar o erro!
GOSTEI 0
Volmir Santos
24/05/2013
Obrigado a todos pela atencao
Consegui resolver fazendo o seguinte:
creie uma clase pra fazer estes processos pois do jeito que foi implementado o sistema,
a regra de negocio estava tudo na tela ou no formulario e como havia muitas tarefas nesta tela ja havia
um numero extermamente grande de procedimentos e funcoes ai resolvi criar uma classe pra implementar este metodos que nao estava conseguindo, ai deu certo funcionou perfeitamente mas só agora no sei afirmar se esta era a razao do erro ou se havia alguma coisa de errado nestes codigos que estavam no form
Consegui resolver fazendo o seguinte:
creie uma clase pra fazer estes processos pois do jeito que foi implementado o sistema,
a regra de negocio estava tudo na tela ou no formulario e como havia muitas tarefas nesta tela ja havia
um numero extermamente grande de procedimentos e funcoes ai resolvi criar uma classe pra implementar este metodos que nao estava conseguindo, ai deu certo funcionou perfeitamente mas só agora no sei afirmar se esta era a razao do erro ou se havia alguma coisa de errado nestes codigos que estavam no form
GOSTEI 0