Ao abrir o form, ele aceita digitar dados - e não quero isso

Delphi

27/11/2003

Olá amigos,

Quando chamo um formulário, ele aparece com o foco setado no primeiro campo permitindo que eu digite qualquer coisa. Não quero isso. Quero que o formulário só permita digitar algo quando estiver em estado de EDIÇÃO ou INSERÇÃO. Como posso resolver esse problema?

Obrigado pela ajuda.


Vinciguerra

Vinciguerra

Curtidas 0

Respostas

Yankleber

Yankleber

27/11/2003

Olá amigo,

Todos os componentes do Delphi possuem uma propriedade Enable que pode assumir true ou false.
Para que os seus campos TEdit não aceitem entrada de dados, selecione todos os campos TEdit no formulário e mude a propriedade Enable para FALSE.

Dentro do seu programa, no evento click dos botões EDIÇÃO e INSERÇÃO, você deve mudar todos eles para TRUE, assim:

edtNome.enabled := true;
edtCPF.enabled := true;
etc...


Novamente, no evento click do botão OK ou CANCELAR, você deve torná-los desabilitados novamente, assim:

edtNome.enabled := false;
edtCPF.enabled := false;
etc...


Isso vale para os botões também (bem como qualquer outro componente) que você queira habilitar ou desabilitar.

Espero ter ajudado.


GOSTEI 0
Vinciguerra

Vinciguerra

27/11/2003

Obrigado pela força yankleber.
A tua ajuda resolveria o meu problema, mas acabei resolvendo de outra forma: Coloquei a propriedade AUTOEDIT do DATASOURCE da tabela (no DataModule) em FALSE.

Obrigado + 1 x.


GOSTEI 0
Orc

Orc

27/11/2003

Amigo vc pode fazer assim usa o State do datasouce ( no evento on statechange voce coloca ewse codigo ó

procedure TFrmClientes.DtsClientesStateChange(Sender: TObject);
begin
with frmclientes.AdoClientes do
begin
//Dbnavigator1.Enabled := State in [dsBrowse];;
Panel4.Enabled := State in [dsInsert, dsEdit];
btnincluir.Enabled := State in [dsBrowse];
btnEditar.Enabled := State in [dsBrowse];
btnExcluir.Enabled := State in [dsBrowse];
btnGravar.Enabled := State in [dsInsert,dsEdit];
btnCancelar.Enabled := State in [dsInsert,dsEdit];
btnimprimir.Enabled := State in [dsBrowse];
btnlocalizar.Enabled := State in [dsBrowse];
btnSair.Enabled := State in [dsBrowse];
end;
end;
observe meus dbedits estao dentro do panel e como o panel esta no state ele so habilita o panel pra mim novamente se eu for inserir ou editar


Espero ter ajudado amigo


Bruno Eduardo de Moura Ferreira :arrow: :arrow: :arrow:


GOSTEI 0
Michel

Michel

27/11/2003

Porque vc nao coloca um panel e todos os edits e labels nele..depois é so liberar o panel1.enabled := true;


GOSTEI 0
POSTAR