Eder Postado Maio 20, 2008 Denunciar Share Postado Maio 20, 2008 Ola... estou com dificuldades para formatar uma campo A(alphanumerico) que trabalha com horas....ele formata certinho até as 99:00:00 se ultrapassar a 99 ou seja 101:00:00 ele não formata direito esta formatação estou fazendo dentro da Table no campo Total_horas no EditMask. a mascara esta assim: !90:00:00;1;_ ela funciona certinho se a hora vai até 99. vamor supor que a hora de 101:00:00 ele me mostra 01:00:00 a centena não aparece.. Como eu poderia fazer a mascara do editmask para ficar certinho? Grato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 20, 2008 Denunciar Share Postado Maio 20, 2008 esta formatação estou fazendo dentro da Table no campo Total_horas no EditMask. a mascara esta assim: !90:00:00;1;_ ela funciona certinho se a hora vai até 99. vamor supor que a hora de 101:00:00 ele me mostra 01:00:00 a centena não aparece.. Como eu poderia fazer a mascara do editmask para ficar certinho?basta usar desta maneira:!000:00:00;1;_abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Maio 20, 2008 Autor Denunciar Share Postado Maio 20, 2008 não deu certo...tipo se for 24 horas...sai assim:240: 00:00deveria ser assim:024:00:00outro exemplo se for 101 horassai assim:965: 0:00deveria ser assim:101:00:00 :blush: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Maio 20, 2008 Denunciar Share Postado Maio 20, 2008 não deu certo...tipo se for 24 horas...sai assim:240: 00:00deveria ser assim:024:00:00Oi Eder.. voce deve pensar um pouco ... a mascara é para mostrar da maneira que voce precisabasta usar desta maneira:!000:00:00;1;_entretanto voce tem que fazer algumas conversões para que isto ocorra, não é simplesmente fazendo < strtotime >voce esta trabalhando com horas, minutos e segundos.. então o mais logico para atingir o resultado esperado para a mascara é converter as horas em segundos depois soma-las e novamente converter segundos para horas e transportar para o maskeditexemplo:// Horas em segundos function Hora_Seg( Horas:string ):LongInt; Var Hor,Min,Seg:LongInt; begin Horas[Pos(':',Horas)]:= '['; Horas[Pos(':',Horas)]:= ']'; Hor := StrToInt(Copy(Horas,1,Pos('[',Horas)-1)); Min := StrToInt(Copy(Horas,Pos('[',Horas)+1,(Pos(']',Horas)-Pos('[',Horas)-1))); if Pos(':',Horas) > 0 then Seg := StrToInt(Copy(Horas,Pos(']',Horas)+1,(Pos(':',Horas)-Pos(']',Horas)-1))) else Seg := StrToInt(Copy(Horas,Pos(']',Horas)+1,2)); Result := Seg + (Hor*3600) + (Min*60); end; // Segundos em horas function Seg_Hora( Seg:LongInt ):string; Var Hora,Min:LongInt; Tmp : Double; begin Tmp := Seg / 3600; Hora := Round(Int(Tmp)); Seg := Round(Seg - (Hora*3600)); Tmp := Seg / 60; Min := Round(Int(Tmp)); Seg := Round(Seg - (Min*60)); Result := FormatFloat( '00', Hora )+ ':' + FormatFloat( '00', Min ) + ':' + FormatFloat( '00', Seg ); end; procedure TForm1.Button1Click(Sender: TObject); var time1, time2, time3 : TTimeStamp; begin MaskEdit1.text := Seg_Hora(strtoint(Edit1.text)); end;neste exemplo: se voce digitar no edit1 o valor de 570000 ( segundos ), ou seja, a soma de todas as horas convertidas em segundos, voce vai ter como resposta no maskedit o valor de 150:20:00 abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Maio 21, 2008 Autor Denunciar Share Postado Maio 21, 2008 Ok....Jonas.GratoAbraçot+ :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Eder
Ola...
estou com dificuldades para formatar uma campo A(alphanumerico) que trabalha com horas....ele formata certinho até as 99:00:00
se ultrapassar a 99 ou seja 101:00:00 ele não formata direito
esta formatação estou fazendo dentro da Table no campo Total_horas no EditMask. a mascara esta assim:
!90:00:00;1;_
ela funciona certinho se a hora vai até 99.
vamor supor que a hora de 101:00:00 ele me mostra 01:00:00 a centena não aparece..
Como eu poderia fazer a mascara do editmask para ficar certinho?
Grato
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.