Erro Acess Violation - Qual Procedimento Para Soluçãor

Delphi

06/08/2016

Boa tarde!!!

Estou desenvolvendo um sistema, e começou a dar erro de access violation, quando eu clico no botão Gravar!!!
Já procurei, e não achei nenhum motivo aparente de eu ter utilizado um objeto que não foi instanciado ou que já foi destruído!!!

Se alguém me ajudar !!! Grato

Código do botão gravar!!!
procedure TFrmCondicaoPagamentoCartao.BtnGravarClick(Sender: TObject);
begin
    FrmFaturarProjeto.CdsFaturarProjeto.Filter := 'SELECIONADO = ' + QuotedStr('S'); // filtra os registros selecionados
    FrmFaturarProjeto.CdsFaturarProjeto.Filtered := True; // ativa o filtro
    FrmFaturarProjeto.CdsFaturarProjeto.First; // posiciona o cursor no primeiro registro
    while not FrmFaturarProjeto.CdsFaturarProjeto.Eof do

    begin

          begin
              FrmFaturarProjeto.CdsFaturarProjeto.Edit;
              FrmFaturarProjeto.CdsFaturarProjeto.FieldByName('SELECIONADO').AsString := 'S';
              FrmFaturarProjeto.CdsFaturarProjeto.FieldByName('STATUS').AsString := 'FATURADO';
              FrmFaturarProjeto.CdsFaturarProjeto.Post;
              FrmFaturarProjeto.CdsFaturarProjeto.Next;
              FrmFaturarProjeto.CdsFaturarProjeto.ApplyUpdates(0);
          end;


    end;

                     FrmCondicaoPagamentoCartao.Close;
                     FrmFaturarProjeto.Close;
                     CdsCondicaoPagamentoCartao.ApplyUpdates(0);



  end;
 



Para onde ele me mostra o erro!!! Fica apontando a linha de erro para aqui
FrmCondicaoPagamentoCartao.ShowModal;

procedure TFrmCondicaoPagamento.FinalizaCartao;
begin
            PostMessage(Handle, WM_CLOSE, 0, 0);
            FrmCondicaoPagamentoCartao:=TFrmCondicaoPagamentoCartao.Create(application);
            FrmCondicaoPagamentoCartao.EdtCodigoClienteCartao.Text:= FrmFaturarProjeto.CdsFaturarProjeto.FieldByName('CODIGOPROPRIETARIOOBRAPJA').AsString;
            FrmCondicaoPagamentoCartao.EdtNomeClienteCartao.Text:= FrmFaturarProjeto.CdsFaturarProjeto.FieldByName('PROPRIETARIOPJA').AsString;
            FrmCondicaoPagamentoCartao.EdtValorCondicaoCartao.Text:= FrmCondicaoPagamento.EdtCondicaoPagamentoCartao.Text;
            FrmCondicaoPagamentoCartao.EdtCodigoClienteCartao.ReadOnly:=True;
            FrmCondicaoPagamentoCartao.EdtNomeClienteCartao.ReadOnly:=True;
            FrmCondicaoPagamentoCartao.EdtValorCondicaoCartao.ReadOnly:= True;
            FrmCondicaoPagamentoCartao.EdtValorLiquidoCondicaoCartao.ReadOnly:= True;
            FrmCondicaoPagamentoCartao.EdtNomeCondicaoCartao.ReadOnly:= True;
            FrmCondicaoPagamentoCartao.EdtBandeiraCondicaoCartao.ReadOnly:= True;
            FrmCondicaoPagamentoCartao.ShowModal;        

end;
Bruno Henrique

Bruno Henrique

Curtidas 0

Respostas

Raimundo Pereira

Raimundo Pereira

06/08/2016

Depende da sua rotina o FrmCondicaoPagamentoCartao está no oncreat

Se estiver criando em run time na linha abaixo você fecha ele
FrmCondicaoPagamentoCartao.Close;

E depois, na linha onde está retornando o erro
FrmCondicaoPagamentoCartao.ShowModal;

Se você estiver criando o form em run time, deverá repetir sua rotina de criação antes de
FrmCondicaoPagamentoCartao.ShowModal;
GOSTEI 0
POSTAR