Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tfrutuoso

Tab automático apos digitar x caracteres em coluna do DBGrid

Recommended Posts

Fala galera, beleza, estou precisando de uma ajuda.

 

tenho um DBGrid vinculada a uma tabela, nela tem uma digitação de horas, exemplo, onde E = Entrada e S = Saída

 

| E-1 | S-2 | E-2 | S-2 |

| 08:00 | 12:00 | 13:00 | 18:00 |

 

o DBGrid esta com o EditMask, funcionado certinho __:__, neste caso, existe 5 caracteres, mais será digitado somente 4, apos essa digitação ir para a próxima coluna, exemplo

 

na E-1 digito 08:30, apos o ultimo zero, ir para a coluna S-1 e assim por diante.

 

Tem como fazer isso, eu conhecia o Length, que faz a contagem de caracteres, apos essa contagem, faz a tabulação, ja no Delphi não achei nada sobre.

 

Att,

 

 

Alguém pode me ajudar com essa situação.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tem como fazer isso, eu conhecia o Length, que faz a contagem de caracteres, apos essa contagem, faz a tabulação, ja no Delphi não achei nada sobre.

 

 

O delphi tb tem...rsrrssr...Eu mesmo nunca fiz isso antes...porque vc não tira os segundos do banco de dados...deixando a hora com 5 caracteres ai ele pularia sozinho, ou Coloca dbedits para ser inserido as horas e coloca as mascaras ai resolveira...pesquisei tb e não achei nada do que vc quer....

 

Aki vi alguma coisa parecida, quem sabe não clareia ai pra vc.

 

http://www.devmedia.com.br/forum/capturar-valor-que-esta-sendo-digitado-em-dbgrid/325825

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Adriano, vou realizar uns teste e assim que tiver um resultado posto aqui.

 

 

Fala Adriano Beleza?

 

Cara como posso limitar no banco de dados a inserção de somente HH:mm, não consegui achar nada parecido. Será que no Delphi tem como fazer isso, direto no DataSource.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu uso o firebird e nele eu saberia te dizer.....mas porque vc não troca o campo time por varchar com 5 caracteres e grava a hora,pode ser uma alternativas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Adriano, beleza?

 

alterei no banco de dados as colunas de Time(HH:mm:ss) para String(char - 5 - hh:mm), mais na hora de digitar na DBGrid ainda não consegui resolver, não pula automático para a outra coluna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigo....tentei aki tb e não consegui pular automaticamente o campo do dbgrid....

 

Pesquisei tb e nada..rsrsr...Ainda bem que pelo menos vc conseguiu gravar a hora só com HH:mm...

 

Agora o dbgrid....não consegui....Vi a sua pergunta em outro lugar e ninguem respondeu tb....ta osso ...rs..

 

Pq vc não usa um dbedit mesmo...e deixa o dbgrid como visualização?

 

Desculpe...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo o dbgrid não tem...tentei tb no datasource mas tb não consegui... Ele até conta as letras mas só funciona depois que grava ou edita..

 

Ir length (seudbgrid.Collins[1].fields.Texto) =5 then... Blá-blá-blá...rsrsrs...

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai adriano, achei esse procedimento, mais não consegui implementar ele, será que voce conhece?

procedure TDBGridInplaceEdit.KeyUp(var Key: Word; Shift: TShiftState); 
var 
  ALimit: integer; 
begin 
  with TCustomDBGrid(Grid) do begin 
    ALimit:=GetEditLimit; 
    if (ALimit > 0) and (Length(Self.Text) >= ALimit) then 
      MoveCol(DataToRawColumn(Col), 0); 
  end; 
  inherited KeyUp(Key, Shift); 
end; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.