Fórum enter no dbgrid #309281

16/01/2006

0

montei um grid com uma coluna de valores, quero que o usuario tecle enter e todo o valor do campo fique selecionado como no TAB...
coloquei um codigo onde o enter funciona bem, pulando de linha em linha, mas o cursor fica sempre no final do valor, ..., se eu usar o tab, e as setas de direção, os valores ficam selecionados....
fiz uma pesquisa onde por troca de tab pelo enter, mas por enqto não achei nada que resolva meu problema....


Arc

Arc

Responder

Posts

16/01/2006

Nilpedro

Resposta a essa pergunta ja tá neste forum

http://forum.clubedelphi.net/viewtopic.php?t=71066


Responder

Gostei + 0

16/01/2006

Arc

ok
eu ja tinha visto este topico....
bom, pelo menos aki naum ta funcionando


Responder

Gostei + 0

16/01/2006

Arc

ele até que funciona, mas é aquele negocio, o cursor continua no final do valor, ..., eu quero que ele selecione o valor todo, como se fosse um selectall


Responder

Gostei + 0

16/01/2006

Aasn

Caro arc,

Não entendi direito o que vc quer, mas aí vai um trecho de código que pode ajudar:

 with DBGrid1 do
      begin
      if selectedindex < (fieldcount - 1) then
         selectedindex := selectedindex + 1
      else
         selectedindex := 0;
      end;


se vc puder ser mais específico, talvez possa ajudar mais.

[]´s
AASN


Responder

Gostei + 0

16/01/2006

Arc

Caro AASN

quando eu teclo TAB, o valor da celula, fica todo selecionado, ou seja, se o valor for 125,00, o valor 125,00 fica selecionado(em azul);

se eu teclo as setas Right, Left, Down, Up, o valor fica selecionado, da mesma forma que com a tela TAB

qdo eu teclo ENTER, o cursor vai para o final da celula, no mesmo exemplo, o cursor fica logo após o ultimo zero de 125,00, o que obriga o usuario a usar o mouse para selecionar o valor e edita-lo


espero ter conseguido explicar melhor

abraço


Responder

Gostei + 0

16/01/2006

Aasn

Caro arc,

procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
   begin
   Key := 0;
   with DBGrid1 do
         begin
         if selectedindex = 1 { coluna valor } then
            Key := 13
         else { outra coluna qualquer }
            if selectedindex < (fieldcount - 1) then
               selectedindex := selectedindex + 1
            else
               selectedindex := 0;
         end;
   end;
end;


fiz este pequeno teste e funcionou exatamente como vc quer. Não sei os detalhes do seu projeto mas fiz esta rotina sem me preocupar com os detalhes e funcionu perfeitamente.

[]´s
AASN


Responder

Gostei + 0

17/01/2006

Arc

colegas
achei o erro aki, puts, nem acredito que era isso
a opção alwaysshoweditor do grid estava como true, coloquei false e funcionou

valeu


Responder

Gostei + 0

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

Aceitar