Habilitar e desabilitar botões

SQL

Delphi

16/01/2025

Pessoal, estou usando este código no evento OnStateChange do meu DataSource

  if Assigned(FrmFornecedores) then 
  begin
    with FrmFornecedores do
    begin
      btnNovo.Enabled           := (Sender as TDataSource).State in [dsBrowse];
      btnGravar.Enabled         := (Sender as TDataSource).State in [dsEdit, dsInsert];
      btnCancelar.Enabled       := btnGravar.Enabled;
      btnAlterar.Enabled        := (btnNovo.Enabled) and not ((Sender as TDataSource).DataSet.IsEmpty);
      btnExcluir.Enabled        := btnAlterar.Enabled;
      btnSair.Enabled           := btnNovo.Enabled;
    end;
  end;


No meu botão Incluir faço assim:

  //Abre a tabela vazia
  if not FrmDm.qrSacados.Active then
  begin
    FrmDm.qrSacados.SQL.Text := SQLSacados;
    FrmDm.qrSacados.SQL.Add('WHERE SA.CODIGO = :COD');
    FrmDm.qrSacados.Open;
  end;

  Incluir := True;
  FrmDm.qrSacados.Append;
  FrmDm.qrSacadosSTATUS.AsString := 'ATIVO';
  edNome.SetFocus;


No botão Cancelar

  FrmDm.qrSacados.Cancel;


Se eu clicar no botão NOVO e em seguida no botão CANCELAR, notei que os botões ALTERAR e EXCLUIR ficam habilitados, mesmo não tendo nenhum dado no meu dbgrid.
Alguém já passou por isso?
Renan

Renan

Curtidas 0
POSTAR