Hola, estoy aqui comiendome el coco con este trozo del codigo que aun siendo una tonteria me trae loco, y os pido ayuda

El codigo es este...
Código Delphi
[-]
for i:= 0 to cmbfecha.Items.Count do
begin
label1.caption:= DateToStr(now);
if (cmbFecha.Items.Text = label1.Caption) and label2.caption:= IntToStr(i)
else
...
end;
Si omito la linea
Código Delphi
[-]label1.caption:= DateToStr(now);
y en el if hago la comparacion directamente con un
no devuelve ningun valor, pero si comparo de esta manera si:
Código Delphi
[-]if (cmbFecha.Items.Text = label1.Caption)
¿por que?
y por otra parte, según está el codigo, si cambio los valores de la hora y el signo de mayor o menor para que la comparacion sea negativa, me sigue mostrando la fecha actual en la etiqueta lo cual no deberia pasar al no cumplirse una de las condiciones.
¿Alguien puede ayudarme?
gracias.