Not In Edit Mode

26/01/2023

0

Pessoal, estou recebendo a mensagem Not In Edit Mode ao tentar incluir um registro.
Meu botão tem apenas essa linha

 FrmDm.qrNomeprojeto.Append;


Se tento editar não recebo o erro e meu botão editar tem esse comando

 FrmDm.qrNomeprojeto.Edit;


Estava tudo funcionado normalmente, mas como eu preciso inativar o dbgrid durante uma inserção ou edição, no evento de OnStateChange do meu DataSource, eu faço esse controle. A ultima linha que esta comentada é a responsavel pelo erro.

  if Assigned(FrmNomeProjeto) then  //se já foi criado
  begin
    with FrmNomeProjeto do
    begin
      btnNovo.Enabled     := (Sender as TDataSource).State in [dsBrowse];
      btnGravar.Enabled   := (Sender as TDataSource).State in [dsEdit, dsInsert];
      btnCancelar.Enabled := btnGravar.Enabled;
      pnEditar.Enabled    := (Sender as TDataSource).State in [dsEdit, dsInsert];
      btnAlterar.Enabled  := (btnNovo.Enabled) and not ((Sender as TDataSource).DataSet.IsEmpty);
      btnExcluir.Enabled  := btnAlterar.Enabled;
      btnSair.Enabled     := btnNovo.Enabled;
      //DBGrid1.Enabled     := (Sender as TDataSource).State in [dsBrowse];
    end;
  end;


rodei esse teste e notei que o codigo precisa executar 2x para poder entrar em modo insert.

  //While not (FrmDm.qrNomeprojeto.State in [dsInsert]) do
  //FrmDm.qrNomeprojeto.Append;


Alguém já passou por isso?
Renan

Renan

Responder

Posts

26/01/2023

Joao Oliveira

Pessoal, estou recebendo a mensagem Not In Edit Mode ao tentar incluir um registro.
Meu botão tem apenas essa linha

 FrmDm.qrNomeprojeto.Append;


Se tento editar não recebo o erro e meu botão editar tem esse comando

 FrmDm.qrNomeprojeto.Edit;


Estava tudo funcionado normalmente, mas como eu preciso inativar o dbgrid durante uma inserção ou edição, no evento de OnStateChange do meu DataSource, eu faço esse controle. A ultima linha que esta comentada é a responsavel pelo erro.

  if Assigned(FrmNomeProjeto) then  //se já foi criado
  begin
    with FrmNomeProjeto do
    begin
      btnNovo.Enabled     := (Sender as TDataSource).State in [dsBrowse];
      btnGravar.Enabled   := (Sender as TDataSource).State in [dsEdit, dsInsert];
      btnCancelar.Enabled := btnGravar.Enabled;
      pnEditar.Enabled    := (Sender as TDataSource).State in [dsEdit, dsInsert];
      btnAlterar.Enabled  := (btnNovo.Enabled) and not ((Sender as TDataSource).DataSet.IsEmpty);
      btnExcluir.Enabled  := btnAlterar.Enabled;
      btnSair.Enabled     := btnNovo.Enabled;
      //DBGrid1.Enabled     := (Sender as TDataSource).State in [dsBrowse];
    end;
  end;


rodei esse teste e notei que o codigo precisa executar 2x para poder entrar em modo insert.

  //While not (FrmDm.qrNomeprojeto.State in [dsInsert]) do
  //FrmDm.qrNomeprojeto.Append;


Alguém já passou por isso?
Responder

27/01/2023

Renan

Joao Oliveira, bom dia.

Não tem conteudo na sua resposta, acredito que só comentou o meu post...
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar