Código p/ Habilitar/Desabilitar Botões

Delphi

24/10/2005

Supondo que eu tenha uma tela cheia de edits ligados aos campos de um dataset e uma barra cheia de botões (Inserir, Confirmar, Cancelar, Excluir, etc.)

Quero que apenas os botões Inserir e Excluir fiquem habilitados enquanto o dataset estiver em estado dsBrowse e que apenas os botões Confirmar e Cancelar fiquem habilitados caso o dataset esteja em estado dsInsert ou dsEdit.

Minha dúvida é: onde ponho o código pra habilitar/desabilitar os botões?

Sendo uma lógica de apresentação, o que eu costumo fazer é criar uma procedure, chamar essa procedure de dentro do OnChange de um dos edits da própria tela e associar esse evento a todos outros edits do form. Esse procedimento é errado? Me disseram que é muito mais rápido e melhor pôr esse código nos eventos do próprio dataset lá no datamodule.

Devo continuar fazendo desta maneira ou devo fazer dessa outra forma que me sugeriram?


Mordred

Mordred

Curtidas 0

Respostas

Emarcolongo

Emarcolongo

24/10/2005

Vc deverá colocar no evento onDataChange do datasource.

por exemplo

if not datasource1.dataset.state in [dsinsert,dsedit] then
begin
//habilitar
end else begin
//desabilitar
end;


GOSTEI 0
Marlon_fp

Marlon_fp

24/10/2005

kara eu sempre faco assim
crio um procedimento
procedure meuform.mudaestado;
begin
btninserir.enabled:=tblminha.state=dsbrowse;
dbnome.readonly:-tblminha.state=dsbrowse;
end;

crio um procedimento para todos os botões
procedure botaoclick(sender:tobject);
if sender=btninserir then
begin
tblminha.append;
mudaestado;
dbnome.setfocus;
end;

no evento onshow do form eu uso o mudaestado também.
fica facil de controlar e leve


GOSTEI 0
POSTAR