![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Alberto
¿Te interesa saber lo que resulta en Delphi4 ? Si te interesa, lo instalo para hacer la prueba. Saludos |
|
#2
|
||||
|
||||
|
¿Y no será que el problema está en la traducción de un TBCD al Variant? De la ayuda leo que existen estas funciones sobrecargadas:
Pero en tu código tu haces simplemente esto:
Por lo que utilizas esta:
Si tu idea es tener una representación TBCD desde un Double, ¿porqué no directamente emplear DoubleToBCD?. Nos evitamos trabajar con el Variant en formato TBCD:
En el TFMTBCDField cuando uno trabaja con el AsCurrency internamente hace las conversiones desde el Double. Por ejemplo, al leer la propiedad se invoca a GetAsCurrency:
Lo que se vé que utiliza al tipo Double para hacer el trabajo:
Por tanto. Hasta el momento yo no he utilizado Variant. Me manejo con las propiedades AsTipoConcreto, como en este caso el que tu dices, AsCurrency. De todas formas a tener en cuenta esto. Saludos, |
|
#3
|
||||
|
||||
|
Aunque también se ha de tener ciertos cuidados si resulta ser que el problema estuviera en todas las funciones sobrecargadas que listé antes.
Si uno escribe en la propiedad AsCurrency tiene lugar esto:
Como se ve, si para el el campo se ha definido un rango se va a intentar comparar el valor contra el máximo y mínimo variant TBCD. Si esta versión sobrecargada sufre del mismo problema se nos viene abajo todo. Al, Ya me hiciste poner en true mi propiedad ModeParanoid. Saludos, |
|
#4
|
||||
|
||||
|
Eliseo: No es tan urgente averiguar si pasa lo mismo en Delphi 4.
Marcelo: Miraré de nuevo esas funciones y comento luego. Muchas gracias a ambos.
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#5
|
||||
|
||||
|
Cita:
Menos mal que abriste el hilo porque estoy utilizando justamente la clase TFMTBDCDField que internamente todo pasa por el AsCurrency y ese SetAsCurrency ya me dio cosa. Que yo recuerde no tuve problemas, pero si el defecto está presente en todo el uso del Variant TBDC es posible que truene en cualquier lado y momento. Mantenos informados. Saludos, |
|
#6
|
||||
|
||||
|
¿Al, tuviste tiempo como para ver a que va el error o algunas novedades?
Saludos, |
|
#7
|
||||
|
||||
|
Hola Marcelo.
No he tenido tiempo de ver a detalle el problema (hoy se me fue la mitad del día buscando una casa de empeños que aceptara relojes Relic). En su momento, para salir del paso, redefiní el método GetAsVariant en una clase interpuesta:
Eso me basta para el proyecto en cuestión, dado que todos los campos FmtBCD que utilizo son para cantidades monetarias. En otros casos, quizá podría añadirse a ese mismo If una verificación de la propiedad Currency (de tipo Boolean y que solamente tiene impacto en el formato de despliegue). De todas formas, tengo los fuentes de Delphi 7 y 2007, así que sólo es cosa de encontrar un hueco de tiempo (un hueco sin preocupaciones "primitivas") para echar una mirada en las funciones involucradas y encontrar la diferencia, es decir, esa corrección que evidentemente trae Delphi al menos desde la versión 2007. ¿Los demás han podido adelantarse a ver algo de esto? Saludos.
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Premium, A mi me lo quitan tambien? | poliburro | La Taberna | 16 | 06-01-2009 00:00:52 |
| Currency to float | david duarte | Varios | 2 | 14-11-2006 16:53:22 |
| Error dando formato a un TFMTBCDField | HiroProtagonist | Conexión con bases de datos | 7 | 18-05-2006 00:46:04 |
| Error de Currency | Epunamun | OOP | 2 | 05-12-2005 23:41:25 |
| Como cambiar TBcdField a TFMTBcdField | Ricardo Alfredo | Varios | 0 | 31-12-2004 16:07:55 |
|