ayuda con una comparacion if
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...
Si omito la linea
y en el if hago la comparacion directamente con un
no devuelve ningun valor, pero si comparo de esta manera si:
¿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. |
¿Algún mode que ponga ese código legible? :D
|
Pues perdon, no se que ha pasado, use las etiquetas para codigo delphi y cuando le di a previsualizar se veia estructurado correctame, de todos modos he intentado editar mi mensaje pero no veo la opcion por ninguna parte. Asi que habro un nuevo hilo y que un moderador elimine este. Lo siento.
Perdon y a ver si me podeis ayudar. |
No repitas mensajes, recuerda nuestra guía de estilo, gracias.
Borro el otro. Si no puedes editarlo, avisa y cualquier moderador lo hace. Y en todo caso, vuelve a escribirlo aquí, no abras un nuevo hilo. |
vale casimiro, una vez mas perdon, no pretendo molestar ni entorpecer el foro.
un saludo. |
Cita:
|
Hola Daniel.
¿Podrías poner el código de cada caso en particular? (veo que mencionas al menos dos situaciones). Para entender mejor el problema. Gracias. :) |
Independientemente del código, yo te haría una recomendación no compares strings, mejor convierte la hora a datetime y compara con la hora de now recuerda que con los strings son especiales por llamarles de algún modo
|
No sé por qué con el "puente" Label1 no ocurre lo mismo que sin él (habría que ver el código exacto de cómo lo haces sin ese puente ;)).
Lo que sí veo algo extraño es que tomes todos los elementos concatenados del cuadro combinado, cmbFecha.Items.Text, en lugar de tomar solamente el elemento de la posición I: cmbFecha.Items [i]. ¿Será eso? :) Te invito a hacer este experimento:
Un curioso abrazo. Al. |
Hola
1-La comparación se saca de un dato Texto (combobox). 2-La comparación es de un solo dato, osea, no de varios ITEMS del combobox. 3-La hora si es Time no se podrá comparar con un string (tal como lo pretendes hacer).
Saludos |
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.
Talvez ese código te sirva. Pruebalo, que no estoy seguro que te sirva al 100%. Saludos! |
La franja horaria es GMT +2. Ahora son las 18:27:49. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi