Ver Mensaje Individual
  #12  
Antiguo 21-02-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Reputación: 19
Chris Va por buen camino
Hola!

Antes que todo, que condiciones se deben haber para que "(TimeToStr(Now) < '10:18:00')" devuelva True?.

Con respecto a lo anterior, mi punto es que te fijes que en realidad estás comparando dos cadenas de texto, no dos fechas. Por lo que utilizar el operador < para cadenas de texto es demasiado ambiguo.

Creo que tu código, casi es su totalidad está mal en conceptos, pues estás utilizando cadenas de texto para hacer comparaciones de fechas. Aún que conviertas correctamente las fechas y horas a texto, tienes que tener en cuenta que esto depende de la configuración regional. No puedes esperar que TimeToStr(Now) devuelva siempre '10:18:00', ya que te podría devolver "10:18:10 AM o PM" y muchas otras variaciones. Lo mejor es que siempre trabajes con fechas y horas de forma nativa.

Código Delphi [-]
var
    I: Integer;
    cmbDate: TDate;
begin
    for I := 0 to (cmbFecha.Items.Count - 1) do
    begin
        
        cmbDate := StrToDate(cmbFecha.Items[i]);
        
        if cmbDate = Date then
        begin
            // comparar hora
            if (CompareDate(Now, EncodeTime(10, 18, 0, 0)) = LessThanValue) then
                Label2.Caption := IntToStr(I);
        end
        else
            ...
        
    end;
end;

Talvez ese código te sirva. Pruebalo, que no estoy seguro que te sirva al 100%.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita