Foco DBEDIT versus DBGRID

Delphi

10/02/2005

Pessoal,

Tenho uma tela com vários DBEDIT´s e abaixo um DBGRID onde apresento os dados dos DBEDIT´s.
O DBGRID abaixo tem os mesmos dados dos campos DBEDIT e serve apenas para mostrar os dados.

chamei um comando DATAMODULE.TABELA.CAMPO.CONTROLFOCUS no final do evento ONNEWRECORD da TABELA para
que o foco do cursor ficasse no primeiro DBEDIT quando eu pressiono o botão para ´incluir´.

Não sei porque, o FOCO está ficando na coluna do campo DBEDIT mas no DBGRID,
quando deveria ir para o seu campo DBEDIT no topo do FORM.

Decidi mudar a propriedade do DBGRID para enabled = false e readlonly = true, e depois disso o FOCO
deixou de funcionar. Não consigo posicionar o Cursor no primeiro campo, no momento da inclusão.

Já verifiquei o TABORDER e simplesmente não entendo este problema. Agradeço qualquer dica.

Alex


Alexsandro

Alexsandro

Curtidas 0

Respostas

Dbergkamps

Dbergkamps

10/02/2005

Coloque a tabela em modo de edição (append, insert ou edit)
e coloque no botão incluir.
Dbedit1.SetFocus;



GOSTEI 0
Alexsandro

Alexsandro

10/02/2005

OI Amigo,

Entendi que você diz para eu colocar no evento ONCLICK do botão incluir certo? O problema é que eu estou usando o DBNAVIGATOR do Delphi e não tenho como colocar especificamente neste botão. Agradeço mais sugestões.

Alex


GOSTEI 0
Rodolpho123

Rodolpho123

10/02/2005

No evento [b:9600c13b2c]OnBeforeAction[/b:9600c13b2c] do seu Navigator faça:
procedure Tform1.DBNavigator1BeforeAction(Sender: TObject;
  Button: TNavigateBtn);
begin
  if Button = nbInsert then
     DBEdit1.Setfocus;

end;



GOSTEI 0
Alexsandro

Alexsandro

10/02/2005

Obrigado Rodrigo,

Funcionou.

Alex


GOSTEI 0
POSTAR