FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Asignacion en variable double perdida
Buenas tardes.
Tengo una funcion StrToDouble que funciona y ha funcionado por mucho tiempo. Con esta funcion convierto un valor obtenido de un grid y la asigno a una variable de tipo double, pero resulta que hemos visto que la variable queda con un 0 mientras que la funcion si ha devuelto el valor correspondiente. Para afirmar lo anterior he puesto un Showmessage donde convierto el resultado de esa funcion a string y muestro en pantalla, pero si el resultado lo pongo en una variable me deja valor 0. Ejemplo
Esto me esta sucediendo con Dlephi 7 (y a un compa le paso en 2010) y no puedo migrar a Delphi 2010 porque requeriria cirugia mayor.... meses de migracion por los componentes que ya tengo establecidos en delphi 7. Agradezco la ayuda q me puedan brindar con el tema. Saludos. Última edición por Casimiro Notevi fecha: 28-06-2012 a las 22:34:12. |
#2
|
||||
|
||||
Recuerda poner los tags al código fuente, ejemplo:
Gracias |
#3
|
||||
|
||||
Y así, ¿que mensaje sale? |
#4
|
|||
|
|||
Seguimiento
Al mostrar los valores del grid en mensaje o debugueando salen bien. Es solo con esa variable que se pierden.
Son variables locales de la función. Este problema me ha pasado en distintas ocasiones, tanto en delphi 7 como en 2010. No se si tiene que ver con el windows 7 64B, o alguna configuracion del delphi. La funcion StrToDouble se usa en MUCHAS partes, todo el sistema de alrededor de 1.7M de lineas usa esta funcion para las conversiones, es una variacion del StrToFloat. |
#5
|
||||
|
||||
Prueba esto...:
|
#6
|
|||
|
|||
Antes de leer tu respuesta trate de inicializar la variable y el compilador no me marcaba la linea como compilada... entonces hice un procedimiento en otra unidad enviando como parametro tipo var la variable para inicializarla y ahi si se compilaba..... y funcionó...
He comentado esa inicializacion para probar tu consejo y ahora antes de mostrar la variable en el mensaje esta tiene el valor que debe, y en el mensaje se muestra correctamente. Esto me parece sospechoso, como que funciona a veces, cual si el compilador no trabajase correctamente. Gracias por la ayuda! |
#7
|
||||
|
||||
No, lo que ocurre es que el compilador sí que está trabajando perfectamente, y en este caso son las optimizaciones lo que hacía que no vieras el valor de la variable cantidad, ¿por qué?, pues simplemente porque después de esa línea no había nada que se hiciera con esa variable, entonces el compilador decide que no sirve de nada asignarle ningún valor.
Por eso, tras poner la línea que te he indicado, la del showmessage, el compilador decide darle el valor a la variable porque ahora sí tiene algo que hacer con ella, tiene que presentar su valor. Por lo que no te preocupes, el compilador funciona perfecto |
#8
|
|||
|
|||
Aclaracion
Me falto indicar que esas lineas que puse inicialmente son solo las del problema, pero en el procedimiento hay muchas lineas mas, y la variable en cuestion se utiliza en el mismo procedimiento enviandose como parametro a una funcion de una impresora fiscal. Esta impresora al llegarle esa variable en 0 opta por no grabar el documento.
Estas impresoras se utilizan en Panama, Chile y Argentina creo, las mismas almacenan los registros de ventas, notas de credito y funcionan para realizar el reporte al fisco. En este caso la variable si se esta usando. |
#9
|
||||
|
||||
El caso es que así no podemos ayudar mucho, tendríamos que ver el código fuente.
|
#10
|
|||
|
|||
Gracias
Cita:
Saludos desde Costa Rica |
#11
|
||||
|
||||
Me alegro
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Asignacion a Variable de tipo TXSCDecimal | ruedabeat2003 | Varios | 4 | 23-12-2011 02:31:13 |
Mikropascal , La asignación a la variable de bucle no está permitido | gaston260 | ASM y Microcontroladores | 3 | 02-11-2010 02:04:53 |
Cargar una matriz desde Excel a una variable de array of arrar of Double | TecnoBestia | Varios | 3 | 07-07-2010 19:05:39 |
Convertir variable tipo variant a double | Confucio | Varios | 3 | 13-11-2007 15:52:24 |
Error En Variable Double | Red_Delphi | Varios | 3 | 03-09-2004 00:13:42 |
|