DBGrid ir para proximo componente via codigo

Delphi

28/12/2004

Estou usando o codigo abaixo no exit do componente, não quero que o usuario saia do componente ser prencher cada celula, só que tem um probleminha, não consigo sair do foco do DBGrid e ir para outro componente, já tentei desabilitar dentre outros, alguém sabe me dizer como ir para um outro componente via codigo, usando uma tecla como o
tab, ou simplesmente mudando de foco, já tente o setfocus, focusControl,
mas até agora...

procedure TBL.DBGrid1Exit(Sender: TObject);
begin
if (Dbgrid1.SelectedIndex = 0) And (DmGlobal.TblCntNRCNTR.AsString = ´´)then
begin
vazio;//chama mensagem...
Dbgrid1.SelectedIndex := 0;
Dbgrid1.SetFocus;
end
else
Dbgrid1.SelectedIndex := 1;
Dbgrid1.SetFocus;
if (Dbgrid1.SelectedIndex = 1) And (DmGlobal.TblCntTYPE.AsString = ´´) then
begin
vazio;
Dbgrid1.SelectedIndex := 1;
Dbgrid1.SetFocus;
end
else
Dbgrid1.SelectedIndex := 2;
Dbgrid1.SetFocus;
if (Dbgrid1.SelectedIndex = 2) And (DmGlobal.TblCntMOVEMENTTYPE.AsString = ´´) then
begin
vazio;
Dbgrid1.SelectedIndex := 2;
Dbgrid1.SetFocus;
end
else
Dbgrid1.SelectedIndex := 3;
Dbgrid1.SetFocus;
end;


Zotti

Zotti

Curtidas 0

Respostas

Zotti

Zotti

28/12/2004

:?:


GOSTEI 0
Dopi

Dopi

28/12/2004

Estou usando o codigo abaixo no exit do componente, não quero que o usuario saia do componente ser prencher cada celula, só que tem um probleminha, não consigo sair do foco do DBGrid e ir para outro componente, já tentei desabilitar dentre outros, alguém sabe me dizer como ir para um outro componente via codigo, usando uma tecla como o tab, ou simplesmente mudando de foco, já tente o setfocus, focusControl, mas até agora...


Nao entendi direito... vc quer que o usuário não saia do DBgrid enquanto tudo NAO estiver preenchido.... Certo ?

Nesse caso quando vc quer tirar o foco do DBgrid ? Apos o preenchimento completo do DBGrid ? ou caso o usuário clique em um botão cancelar, por exemplo...

Usar o evento OnExit nem sempre é uma boa estratégia... Exemplo: Se o seu Form tiver um botao OK como Default, se o usuário pressionar ENTER, o Click do botao ocorrerá, porem não haverá mudança do foco de componente... ou seja, o foco nao sairá do componente atual, e o ONEXIT nao será disparado...
O ideal é fazer as validaçoes antes de gravar os dados... BeforePost por exemplo...


GOSTEI 0
POSTAR