Fórum bloquear controles em uma tela #372959
31/07/2009
0
meus forms estao assim:
PnBotoes (panel do lado esquerdo tendo os botoes de operação, Inserir, salvar, editar.....)
PnEdição.. (panel que cobe todo o resto do form.. onde ficaram todos os controles.
Dae para facilitar eu simplismente fazia um PnEdicao.enabled := false; Até que o usuario clica em Editar dae eu mudava p true;
Mas agora surgiu uns probleminhas... dentro deste PnEdicao eu tenho PageControls e até alguns botões que poderiam ser acessado sem ter que apertar Editar.
Na verdade eu criei assim para se ter um controle melhor de qdo a tela esta em Insert, Edit, Browser.
Gostaria que o usuario apenas pudesse editar apos clicar Editar.
Mas do jeito que fiz ele não pode nem navegar na tela p ver os dados sem Editar.
Alguem tem alguma sugestão de como reslver isso?
Obrigado
Osocram
Curtir tópico
+ 0Posts
31/07/2009
Rafa.spimenta
Abraço!
Gostei + 0
31/07/2009
Osocram
Gostei + 0
31/07/2009
Osocram
Obrigado.
Gostei + 0
31/07/2009
Osocram
Olha funcionou blz p o que eu preciso.... estranho, pois num passado distante precisei fazer isso em outro sistema e lembro q tentei usar o dataSource e ele não controlou exatamente isso... O problema era qdo se editava diretamente as filhas....
Mas blz.. funcinou,
Vlw ae.
Gostei + 0
31/07/2009
Rafa.spimenta
E pra quem tem dúvida, esse evento OnStateChange do TDataSource ajuda muito no momento de habilitar/desabilitar os botões(componentes) em relação ao estado do DataSet. Pois, o mesmo ocorre sempre que há uma mudança no estado do mesmo.
Assim você concentra seu código em apenas um evento.
exemplo beeeeeeeeeeeeeeeeeeeeeeeem simples:
[url]http://www.planetadelphi.com.br/dica/6067/onstatechange-do-tdatasource[/url]
Bom dia ae!
Gostei + 0
02/08/2009
Sdph
procedure TFrm_Cadastro.dsCadastroStateChange(Sender: TObject);
Var Edita : Boolean;
begin
Edita := ((Sender As TDataSource).State In [dsinsert, dsedit]);
btnExcluir.Enabled := Not Edita;
btnCancelar.Enabled := Edita;
btnNovo.Enabled := Not Edita;
btnImprimir.Enabled := Not Edita;
btnGravar.Enabled := Edita;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)