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
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!