Problemas Append usando SpeedButton

Delphi

28/11/2025

Em meus formulários de cadastro eu uso um TNotebook ou pagecontrol com duas abas

1 - para o dbgrid
2- para os edits

No speedbutton de inclusão uso esse codigo

  try
    FrmDm.qrFeriados.Append;
    PageControl1.TabIndex := 1;
    edNome.SetFocus;
  except on e : exception do
    Application.MessageBox(Pchar('Ocorreu o seguinte erro: '+#13+ e.message), 'Sis', MB_ICONERROR + MB_OK);
  end;


Para gravar
    FrmDm.qrFeriados.Post;
    PageControl1.TabIndex := 0;


Ao clicar botão inserir pela primeira vez, tudo dá certo.
Já na segunda vez, não funciona, os edits vem carregados com os dados do item selecionado no dbgrid.

Se eu troco speedbutton por button, funciona normal
Se eu mantenho speedbuuton e deixo de usar pagecontrol, também funciona.

O estranho é que tenho outros formulários que usam a mesma logica e mesmos componentes e nestes tudo funciona.
Renan

Renan

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

28/11/2025

edNome é um edit ou um dbedit?
se é um dbedit, os datasets estão referenciados corretamente?
se é um edit, as cargas de dados foram efetuadas corretamente?

GOSTEI 0
Renan

Renan

28/11/2025

Olá Emerson.

edNome é um DbEdit.

Vi que tem uma propriedade no dbgrid que se chama dgcancelonexit, que quando está ativada acaba causando esse comportamento.
Desativei essa opção e está funcionando normalmente agora
GOSTEI 0
POSTAR