Já havia tentado isso, e pula o componente Edit1 também e vai para o Edit2, eu só não entendi o porquê.
----- Original Message ----- From: "Osmar de Souza Júnior" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Friday, July 08, 2005 1:46 PM Subject: [delphi-br] Re: DBGrid - Como sair dele usando teclado? Se o seu form está com KeyPreview = True, ele deve estar chamando SelectNext() duas vezes. Quando pressiona Enter, ele executa a chamada do form. Depois executa a chamada que você colocou: if dbgTitulos.Fields[0].Text = '' then SelectNext (ActiveControl,True,True); De repente, teste aí, se você explicitar o foco onde quer, no OnColExit(): if dbgTitulos.Fields[0].Text = '' then Edit1.SetFocus(); --- Em delphi-br@yahoogrupos.com.br, "Marcelo" <[EMAIL PROTECTED]> escreveu > Usar o Enter como Tab no Grid, no meu caso, já funciona direitinho, o meu > problema é como sair do DBGrid. > > ----- Original Message ----- > From: "Osmar de Souza Júnior" <[EMAIL PROTECTED]> > To: <delphi-br@yahoogrupos.com.br> > Sent: Friday, July 08, 2005 8:54 AM > Subject: [delphi-br] Re: DBGrid - Como sair dele usando teclado? > > > > > Para usar Enter como Tab nos meus grides, eu faço assim: > - Repare que não uso SelectNext()... > > > procedure TfmCad_Checagem.grideKeyPress(Sender: TObject; var Key: Char); > begin > inherited; > > if (Key = #13) then > begin > if (HiWord(GetKeyState(VK_SHIFT)) <> 0) then > begin > with (Sender as TwwDBGrid) do > if (SelectedIndex > 0) then > SelectedIndex := SelectedIndex - 1 > else > begin > DataSource.DataSet.Prior; > SelectedIndex := FieldCount - 1; > end; > end > else > begin > with (Sender as TwwDBGrid) do > if (SelectedIndex < (FieldCount - 1)) then > SelectedIndex := SelectedIndex + 1 > else > begin > DataSource.DataSet.Next; > SelectedIndex := 0; > end; > end; > > Key := #0 > end; > end; > > > --- Em delphi-br@yahoogrupos.com.br, "Marcelo" <[EMAIL PROTECTED]> > escreveu > > Olá pessoal! > > Sou iniciante e tenho a seguinte dúvida: > > Num DBGrid tenho 3 colunas Título, Vcto, Valor e gostaria de qdo > desse um enter no campo título em branco ele saísse do DBGrid e fosse > para o componente seguinte, no caso Edit1 > > Uso o seguinte código no form para usar o Enter como Tab: > > if key = #13 then > > if not (ActiveControl is TwwDBGrid) then > > begin > > SelectNext (ActiveControl,True,True); > > key := #0; > > end; > > E o seguinte código no evento OnColExit do DBGrid: > > if dbgTitulos.SelectedIndex = 0 then > > if dbgTitulos.Fields[0].Text = '' then > > SelectNext (ActiveControl,True,True); > > > > Mas ele salta para o componente posterior ao Edit1, no caso, para o > Edit2. > > Como posso proceder? > > Como vcs fazem pra sair de um DBGrid via teclado? > > > > Agradeço qualquer ajuda ou uma forma melhor de se fazer isso que > pretendo. > > > > []´s > > Marcelo > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > Para ver as mensagens antigas, acesse: > http://br.groups.yahoo.com/group/delphi-br/messages > > Para falar com o moderador, envie um e-mail para: > [EMAIL PROTECTED] ou [EMAIL PROTECTED] > > Links do Yahoo! Grupos -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html