Muito Obrigado pelo esclarecimento. Ficou muito claro a explicação. Vivendo e aprendendo. -- Atenciosamente: Evaldo Avelar Marques Programador Junior: Delphi, firebird/interbase, C# Dot Net, C++ Debian GNU/Linux. [EMAIL PROTECTED] Belo Horizonte/MG Brazil
----- Mensagem original ---- De: Rubem Nascimento da Rocha <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Terça-feira, 11 de Março de 2008 14:34:25 Assunto: RE: [delphi-br] bug ao traballhar com horas, ou falta de conhecimento? Se vc consultar atentamente o help do Delphi, vai constatar que tanto TTime como TDate são, em essência, do tipo TDateTime. No seu caso, companheiro, um pouco de conhecimento a mais sobre esses tipos de dados se faria necessário. Para que essa sua verificação funcione, sabendo que um TTime é na verdade um TDateTime, vc deve 'zerar' a parte de data do valor para que a comparação (que não deixa de ser um cálculo) funcione. Veja a aplicação do tipo console abaixo que exemplifica este esclarecimento: program TesteDataHora; {$APPTYPE CONSOLE} uses Windows, SysUtils; var TotalEntrada, TotalSaida: TDateTime; function StringToOem( const s: string): string; begin SetLength(Result, Length(s)); AnsiToOem(PChar( s), PChar(Result) ); end; begin TotalEntrada := Now(); Sleep(1000); // atraso intencional! TotalSaida := Now(); // 'Zera' a parte de data dos valores ReplaceDate( TotalEntrada, 0); ReplaceDate( TotalSaida, 0); if TotalEntrada < TotalSaida then WriteLn(StringToOem ('O menor horário é TotalEntrada. ')) else if TotalEntrada> TotalSaida then WriteLn(StringToOem ('O menor horário é TotalSaida.' )) else WriteLn(StringToOem ('Os horários são iguais.')); Write('Tecle ENTER ...'); WriteLn(Eoln) ; end. Sds. ____________ _________ _________ __ To: [EMAIL PROTECTED] os.com.br From: evaldoavelar@ yahoo.com. br Date: Tue, 11 Mar 2008 10:14:02 -0700 Subject: [delphi-br] bug ao traballhar com horas, ou falta de conhecimento? Olá a todos. Estou tentando fazer um simples calculo com horas, porem quando eu uso variáveis do tipo TTime, o calculo não funciona corretamente, mas se eu fizer a POG abaixo, a coisa passa a funcionar perfeitamente. Pergunto: tem alguma coisa que eu não esteja fazendo corretamente ou um detalhe que ficou para trás ou o Delphi 7 tem mesmo um bug? Obs:Todas as variáveis são do tipo TTime; Código que não funciona: if (TotalEntrada <= TotalSaida )then MenorHorario := TotalEntrada Código POG que funciona: if StrToTime( TimeToStr( TotalEntrada) ) <= StrToTime( TimeToStr( TotalSaida ))then MenorHorario := TotalEntrada -- Atenciosamente: Evaldo Avelar Marques Programador Junior: Delphi, firebird/interbase, C# Dot Net, C++ Debian GNU/Linux. evaldoavelar@ yahoo.com. br Belo Horizonte/MG Brazil Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] ____________ _________ _________ _________ _________ _________ _ Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! http://www.livemaps .com.br/index. aspx?tr=true <!-- #ygrp-mkp{ border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px 14px;} #ygrp-mkp hr{ border:1px solid #d8d8d8;} #ygrp-mkp #hd{ color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px 0px;} #ygrp-mkp #ads{ margin-bottom:10px;} #ygrp-mkp .ad{ padding:0 0;} #ygrp-mkp .ad a{ color:#0000ff;text-decoration:none;} --> <!-- #ygrp-sponsor #ygrp-lc{ font-family:Arial;} #ygrp-sponsor #ygrp-lc #hd{ margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;} #ygrp-sponsor #ygrp-lc .ad{ margin-bottom:10px;padding:0 0;} --> <!-- #ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean, sans-serif;} #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean, sans-serif;} #ygrp-mlmsg pre, code {font:115% monospace;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family:Georgia; } #ygrp-text p{ margin:0 0 1em 0;} #ygrp-tpmsgs{ font-family:Arial; clear:both;} #ygrp-vitnav{ padding-top:10px;font-family:Verdana;font-size:77%;margin:0;} #ygrp-vitnav a{ padding:0 1px;} #ygrp-actbar{ clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;} #ygrp-actbar .left{ float:left;white-space:nowrap;} .bld{font-weight:bold;} #ygrp-grft{ font-family:Verdana;font-size:77%;padding:15px 0;} #ygrp-ft{ font-family:verdana;font-size:77%;border-top:1px solid #666; padding:5px 0; } #ygrp-mlmsg #logo{ padding-bottom:10px;} #ygrp-vital{ background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;} #ygrp-vital #vithd{ font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;} #ygrp-vital ul{ padding:0;margin:2px 0;} #ygrp-vital ul li{ list-style-type:none;clear:both;border:1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;} #ygrp-vital ul li .cat{ font-weight:bold;} #ygrp-vital a{ text-decoration:none;} #ygrp-vital a:hover{ text-decoration:underline;} #ygrp-sponsor #hd{ color:#999;font-size:77%;} #ygrp-sponsor #ov{ padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;} #ygrp-sponsor #ov ul{ padding:0 0 0 8px;margin:0;} #ygrp-sponsor #ov li{ list-style-type:square;padding:6px 0;font-size:77%;} #ygrp-sponsor #ov li a{ text-decoration:none;font-size:130%;} #ygrp-sponsor #nc{ background-color:#eee;margin-bottom:20px;padding:0 8px;} #ygrp-sponsor .ad{ padding:8px 0;} #ygrp-sponsor .ad #hd1{ font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;} #ygrp-sponsor .ad a{ text-decoration:none;} #ygrp-sponsor .ad a:hover{ text-decoration:underline;} #ygrp-sponsor .ad p{ margin:0;} o{font-size:0;} .MsoNormal{ margin:0 0 0 0;} #ygrp-text tt{ font-size:120%;} blockquote{margin:0 0 0 4px;} .replbq{margin:4;} --> Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]