tfrutuoso 0 Denunciar post Postado Março 13, 2015 Bom dia pessoal Tenho uma consulta que trago o valor do campo hora (time no banco), ecarrego as informações em um dbgrid.No banco o campo hora está gravado assim: 16:30:00Preciso que no dbgrid mostre apenas o 16:30, sem os segundos.Como faço para colocar a máscara dentro do dbgrid? ja tentei assim: TNumericField(dm.TB_cartaodig.FieldByName('ENT1')).DisplayFormat := '!90:00;1;_'; TNumericField(dm.TB_cartaodig.FieldByName('SAIDA1')).DisplayFormat := '!90:00;1;_'; TNumericField(dm.TB_cartaodig.FieldByName('ENT2')).DisplayFormat := '!90:00;1;_'; TNumericField(dm.TB_cartaodig.FieldByName('SAIDA2')).DisplayFormat := '!90:00;1;_'; assim: TNumericField(dm.TB_cartaodig.FieldByName('ENT1')).DisplayFormat := '00:00'; TNumericField(dm.TB_cartaodig.FieldByName('SAIDA1')).DisplayFormat := '00:00'; TNumericField(dm.TB_cartaodig.FieldByName('ENT2')).DisplayFormat := '00:00'; TNumericField(dm.TB_cartaodig.FieldByName('SAIDA2')).DisplayFormat := '00:00'; tambem assim: TTimeField(dm.TB_cartaodig.FieldByName('ENT1')).DisplayFormat := FormatDateTime('hh:nn',dm.TB_cartaodig.FieldByName('ENT1').AsDateTime); TTimeField(dm.TB_cartaodig.FieldByName('SAIDA1')).DisplayFormat := FormatDateTime('hh:nn',dm.TB_cartaodig.FieldByName('SAIDA1').AsDateTime); TTimeField(dm.TB_cartaodig.FieldByName('ENT2')).DisplayFormat := FormatDateTime('hh:nn',dm.TB_cartaodig.FieldByName('ENT2').AsDateTime); TTimeField(dm.TB_cartaodig.FieldByName('SAIDA2')).DisplayFormat := FormatDateTime('hh:nn',dm.TB_cartaodig.FieldByName('SAIDA2').AsDateTime); e com o Edit Mask, no AfterOpen da Query, e nada ate o momento, nem para digitar no formato 08:30. será que alguem pode me ajudar nesta situação. Att Compartilhar este post Link para o post Compartilhar em outros sites
Ådriano 9 Denunciar post Postado Março 14, 2015 Boa noite ....acho que ajuda..... Showmessage(Formatdatetime('hh:nn',now)); Compartilhar este post Link para o post Compartilhar em outros sites
tfrutuoso 0 Denunciar post Postado Março 14, 2015 Ola Adriano, e onde eu poderia colocar essa informação para mostrar na DBGrid Compartilhar este post Link para o post Compartilhar em outros sites
Ådriano 9 Denunciar post Postado Março 14, 2015 E ai meu camarada.... Você vai no sua query e usa o AfterPost e coloca assim... TDateTimeField(SuaTabela.FieldByName('HORA')).DisplayFormat := FormatDatetime('hh:nn',SuaTabela.fieldbyname('HORA').AsDateTime); Compartilhar este post Link para o post Compartilhar em outros sites
tfrutuoso 0 Denunciar post Postado Março 14, 2015 Vou testar aqui Adriano, qualquer novidade ja posto aqui. Opa Adriano, acabei de colocar no codigo e nada quando vou digitar na DBGrid não pega o formato 08:30 (5 caracteres) e nem fica com esse formato, lembrando que na minha tabela esta com TIME o campo, sera que tenho que trocar a coluna para outro formato. Compartilhar este post Link para o post Compartilhar em outros sites
Ådriano 9 Denunciar post Postado Março 15, 2015 Porque você não troca no banco de dados mesmo? O código que te passei quando você carrega o dbgrid fica com o formato que você quer(hh:nn)? Ou vc altera o size para 5 caracteres...rsrs Compartilhar este post Link para o post Compartilhar em outros sites
tfrutuoso 0 Denunciar post Postado Março 15, 2015 Mesmo ela sendo uma DBGrid editavel.... o usuario vai realizar uma digitação de horarios nessa grid. Compartilhar este post Link para o post Compartilhar em outros sites
Ådriano 9 Denunciar post Postado Março 15, 2015 Então porque vc não trava em 5 caracteres ...e será que se o usuario digitar errado não vai dar pau....na hora de gravar vc tem que fazer a verificação e gravar.... Formatei o pc agora pouco to sem o delphi aki agora pra testar com vc Compartilhar este post Link para o post Compartilhar em outros sites
tfrutuoso 0 Denunciar post Postado Março 16, 2015 Bom dia Adriano, beleza? Conseguiu ver se funcionou no seu? Bom dia Adriano, beleza? Consegui resolver da seguinte maneira, coloquei no evento da DBGridCellClick TTimeField(dm.SQL_cartaodig.FieldByName('ENT1')).EditMask := '!99:99;1;_'; TTimeField(dm.SQL_cartaodig.FieldByName('SAIDA1')).EditMask := '!99:99;1;_'; TTimeField(dm.SQL_cartaodig.FieldByName('ENT2')).EditMask := '!99:99;1;_'; TTimeField(dm.SQL_cartaodig.FieldByName('SAIDA2')).EditMask := '!99:99;1;_'; e funcionou, muito obrigado pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites