Capturar Alterações
Olá Pessoal! Precisando de uma ajudinha dos universitários kkkk.
Tenho um simples cadastro, quando clico no botão: "Salvar" configurei para que após ser "Salvo" o mesmo seja desabilitado.(Até aí tudo bem!!)
Aí vem o problema: Se o registro já está "Salvo" gostaria de saber se existe uma maneira de a medida que o usuário alterar essas informações já gravadas, o Botão: "Salvar" seja habilitado.
Passo 1: Salvei o registro
Passo 2: Registro gravado e Botão foi desabilitado
Passo 3: No mesmo registro, agora estou fazendo qualquer alteração e o Delphi está entendo que é uma alteração e habilita o botão "Salvar".
Procurei muitos eventos, mas não encontrei nada que controla ou captura alterações dentro de um Form nesse sentido.
Tenho um simples cadastro, quando clico no botão: "Salvar" configurei para que após ser "Salvo" o mesmo seja desabilitado.(Até aí tudo bem!!)
Aí vem o problema: Se o registro já está "Salvo" gostaria de saber se existe uma maneira de a medida que o usuário alterar essas informações já gravadas, o Botão: "Salvar" seja habilitado.
Passo 1: Salvei o registro
Passo 2: Registro gravado e Botão foi desabilitado
Passo 3: No mesmo registro, agora estou fazendo qualquer alteração e o Delphi está entendo que é uma alteração e habilita o botão "Salvar".
Procurei muitos eventos, mas não encontrei nada que controla ou captura alterações dentro de um Form nesse sentido.
Willian Rodrigues
Curtidas 1
Melhor post
Emerson Nascimento
29/08/2022
no OnStateChange do DataSource coloque apenas:
ButtonSalvar.Enabled := ((Sender as TDataSource).DataSet.State in [dsEdit, dsInsert]);
note que para funcionar desta maneira o DataSource precisa ser instanciado no mesmo form onde está o botão Salvar.
ButtonSalvar.Enabled := ((Sender as TDataSource).DataSet.State in [dsEdit, dsInsert]);
note que para funcionar desta maneira o DataSource precisa ser instanciado no mesmo form onde está o botão Salvar.
GOSTEI 1
Mais Respostas
Lucas Santato
25/08/2022
Olá Pessoal! Precisando de uma ajudinha dos universitários kkkk.
Tenho um simples cadastro, quando clico no botão: "Salvar" configurei para que após ser "Salvo" o mesmo seja desabilitado.(Até aí tudo bem!!)
Aí vem o problema: Se o registro já está "Salvo" gostaria de saber se existe uma maneira de a medida que o usuário alterar essas informações já gravadas, o Botão: "Salvar" seja habilitado.
Passo 1: Salvei o registro
Passo 2: Registro gravado e Botão foi desabilitado
Passo 3: No mesmo registro, agora estou fazendo qualquer alteração e o Delphi está entendo que é uma alteração e habilita o botão "Salvar".
Procurei muitos eventos, mas não encontrei nada que controla ou captura alterações dentro de um Form nesse sentido.
Tenho um simples cadastro, quando clico no botão: "Salvar" configurei para que após ser "Salvo" o mesmo seja desabilitado.(Até aí tudo bem!!)
Aí vem o problema: Se o registro já está "Salvo" gostaria de saber se existe uma maneira de a medida que o usuário alterar essas informações já gravadas, o Botão: "Salvar" seja habilitado.
Passo 1: Salvei o registro
Passo 2: Registro gravado e Botão foi desabilitado
Passo 3: No mesmo registro, agora estou fazendo qualquer alteração e o Delphi está entendo que é uma alteração e habilita o botão "Salvar".
Procurei muitos eventos, mas não encontrei nada que controla ou captura alterações dentro de um Form nesse sentido.
Acho que daria certo colocar no evento OnChange dos campos o ButtonSalvar.Enabled := True;
GOSTEI 0
Emerson Nascimento
25/08/2022
implemente isso no evento OnStateChange do DataSource
GOSTEI 0
Willian Rodrigues
25/08/2022
Tentei fazer dessa maneira, mas não deu certo, porquê ele pega alterações feito no registro.(Inclusão, Gravar...)
fiz um teste bem simples, coloquei um ShowMessage para mostrar quando o evento está disparando.
fiz um teste bem simples, coloquei um ShowMessage para mostrar quando o evento está disparando.
GOSTEI 0
Raimundo Pereira
25/08/2022
Vai até o datasource no evento OnStateChange
If Tabela.State in [dsEdit, dsInsert] then
begin
ButtonSalvar.Enabled:=true;
end
else
begim
ButtonSalvar.Enabled:=False;
end;
If Tabela.State in [dsEdit, dsInsert] then
begin
ButtonSalvar.Enabled:=true;
end
else
begim
ButtonSalvar.Enabled:=False;
end;
GOSTEI 0
Willian Rodrigues
25/08/2022
Show de Bola, testei aqui e funcionou perfeitamente!!
Muito Obrigado.
Muito Obrigado.
GOSTEI 0