![]() |
Asignar el valor de DayOfTheWeek a una variable
Como puedo asignar el valor que me dá la función DayOfTheWeek a una variable para después trabajar con él.
Resulta que K siempre acaba teniendo el valor 0 !! Necesito el valor en K porque después tengo que hacer otras operaciones con ese valor. Gracias y saludos. |
En tu ejemplo no le asignas ningún valor a la variable por eso te da 0. Un Saludo. |
Gracias Marcos por tu respuesta, pero sigo sin comprenderlo.
En mi código se le asigna un valor a K !! Si miro con el Debug, K siempre es 0. Ahora bien, acabo de comprobar que si a continuación de esta sentencia pongo la que tú me has indicado entonces resulta que mirando con el Debug, K tiene el valor correspondiente. Me gustaría que me explicaras el porqué de esto. Gracias |
Un Saludo. |
Bueno pues resulta que si funciona correctamente, pero como no dijiste la versión de Delphi que utilizabas.
En D5 no exite DayOfTheWeek sino DayOfWeek, ahora lo he probado con D7 y funciona sin ningún problema.
Un Saludo. |
Utilizo Delphi 2005.
Lo que no hemos aclarado es porqué si miras con el Debug el valor de K, es siempre 0 si no añades ShowMessage. En cambio si el programa está con la instrucción ShowMessage entonces K toma el valor correcto. Por lo menos eso pasa en D2005 y D8. |
Pues no voy a poder aclarártelo ya que no tengo la versión 2.005, supongo que o no están bien configuradas las opciones de depuración, o aunque me parecería mas raro un fallo del depurador.
Lo cierto es que K, contiene el valor pue sino no se visualizaría con ShowMessage. Un Saludo. |
Específicamente en Delphi 8 o 2005 no sé, pero es muy posible que el compilador esté omitiendo la llamada a DayOfWeek. Verás, el compilador (o el linker) de Delphi es bastante eficiente. Al ver una llamada a función que no se usa (el valor de K no lo usas posteriormente), el linker sabe que no hay necesidad de agregarla al ejecutable. Cuando Marcos pone el ShowMessage, entonces al linker no le queda más remedio que incluir la llamada a la función ya que sí tiene un uso posterior.
// Saludos |
La franja horaria es GMT +2. Ahora son las 13:01:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi