Fórum bloquear controles em uma tela #372959

31/07/2009

0

Pessoal... tenho algumas telas em que o usuario so vai poder editar as informações se ele Clicar no botão Editar...

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

Osocram

Responder

Posts

31/07/2009

Rafa.spimenta

Cara eu não parei pra olhar com calma, mas, não seria o caso de você fazer o controle dos componentes no evento OnStateChange do seu DataSourse?

Abraço!


Responder

Gostei + 0

31/07/2009

Osocram

Suponha que na tela eu tenho Pai e filho se eu editar diretamente o filho o pai não vai entrar em edição.

Cara eu não parei pra olhar com calma, mas, não seria o caso de você fazer o controle dos componentes no evento OnStateChange do seu DataSourse? Abraço!



Responder

Gostei + 0

31/07/2009

Osocram

Esqueci de comentar... estarei testando isso q vc passou
Obrigado.
Suponha que na tela eu tenho Pai e filho se eu editar diretamente o filho o pai não vai entrar em edição. [quote:a0a1257c61=´rafa.spimenta´]Cara eu não parei pra olhar com calma, mas, não seria o caso de você fazer o controle dos componentes no evento OnStateChange do seu DataSourse? Abraço!
[/quote:a0a1257c61]


Responder

Gostei + 0

31/07/2009

Osocram

Opa... Rafa.
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.

Cara eu não parei pra olhar com calma, mas, não seria o caso de você fazer o controle dos componentes no evento OnStateChange do seu DataSourse? Abraço!



Responder

Gostei + 0

31/07/2009

Rafa.spimenta

Mas é isso ae osocram! se funcionou entao ta bom d mais! rs

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!


Opa... Rafa. 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. [quote:9959501915=´rafa.spimenta´]Cara eu não parei pra olhar com calma, mas, não seria o caso de você fazer o controle dos componentes no evento OnStateChange do seu DataSourse? Abraço!
[/quote:9959501915]


Responder

Gostei + 0

02/08/2009

Sdph

no evento StateChange do dataSet

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;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar