FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Asignacion a Variable de tipo TXSCDecimal
Hola estoy atorado con una signacion a una variable de tipo TXSDECIMAL pues me marca un error de Access Violation, mi codigo es:
Código:
var cantidad:TXSDecimal; ... cantidad. := qAux.fieldByName('cantidad_comer').Float; // La asignacion me marca Access Violation Código:
cantidad.AsBcd := qAux.fieldByName('cantidad_comer').AsBCD; Saludos y gracias de antemano. |
#2
|
||||
|
||||
Hola.
Probá de este modo:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Hola de nuevo.
Olvidé un detalle... Luego de crear la instancia cantidad, es conveniente liberarla con Free una vez que termines de usarla. A modo de ejemplo:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
|||
|
|||
Asignacion a Variable de tipo TXSDecimal
Mi asignación la hice finalmente así:
Código:
var qAux:TQuery; XsDec : TxsDecimal; begin XsDec := TXSDecimal.Create; XsDec.XSToNative(FormatFloat('%f',qAux.fieldByName('cantidad_comer').AsFloat)); las_mercancias[i].cantidad := XsDec; El problema ahora es que necesito hacer 3 asignaciones más a 3 elementos más de mi arreglo las_mercancias[i], y esto mismo para 3 registros de mi arreglo, uso la misma variable de paso definida anteriormente(XsDec : TxsDecimal), pero al final todos los elementos del arreglo tienen la misma dirección de memoria y el mismo valor, es decir el ultimo valor asignado a la variable de paso. Eso significa que lo que a cada elemento de mi registro y cada registro de mi arreglo le asigne es la ultima dirección de memoria asignada, lo que necesito es asignar el valor. Necesitaría declarar un arreglo alterno para poner ahí mis valores o como puedo asignar el 'valor' a cada elemento? Código:
i := cuantos_regs(consec); SetLength(las_mercancias,i); i := 0; while not qAux.Eof do begin las_mercancias[i] := Mercancia.Create; las_mercancias[i].descripcionGenerica := qAux.fieldByName('descr_generica').AsString; las_mercancias[i].claveUnidad := UnidadMedida(qAux.fieldByName('cve_unidad_comer').AsInteger - 1); XsDec.XSToNative(FormatFloat('%f',qAux.fieldByName('cantidad_comer').AsFloat)); // Primer campo las_mercancias[i].cantidad := XsDec; xsDec.DecimalString := Format('%f', [qAux.fieldByName('valor_unitario').AsFloat]); // Segundo campo las_mercancias[i].valorUnitario := xsDec; xsDec.DecimalString := Format('%f', [qAux.fieldByName('valor_total').AsFloat]); // Tercer campo las_mercancias[i].valorTotal := xsDec; xsDec.DecimalString := Format('%f', [qAux.fieldByName('valor_dolares').AsFloat]); // Cuarto campo las_mercancias[i].valorDolares := xsDec; Showmessage(las_mercancias[i].cantidad.NativeToXS); Showmessage(las_mercancias[i].valorUnitario.NativeToXS); Showmessage(las_mercancias[i].valorTotal.NativeToXS); Showmessage(las_mercancias[i].valorDolares.NativeToXS); qAux.Next; i := i + 1; end; // While XsDec.Free; qAux.Destroy; He intentado de esta manera: Código:
las_mercancias[i].valorDolares.DecimalString := Format('%f', [qAux.fieldByName('valor_dolares').AsFloat]); Probe con : Código:
las_mercancias[i].valorDolares.XSToNative(FormatFloat('%f',qAux.fieldByName('valor_dolares').AsFloat)); De antemano gracias por su ayuda. |
#5
|
|||
|
|||
Bueno, eso es fácil, crea un arreglo de TSXDecimal y asunto resuelto,
Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Variable de Tipo | ruedabeat2003 | Varios | 2 | 21-12-2011 02:24:58 |
No se puede convertir variable de tipo null a tipo integer. | JairoC | Varios | 5 | 30-11-2011 15:43:11 |
Mikropascal , La asignación a la variable de bucle no está permitido | gaston260 | ASM y Microcontroladores | 3 | 02-11-2010 02:04:53 |
Tipo de Variable | gabriel3 | Varios | 5 | 13-01-2006 20:46:55 |
Como Asignar Variable Tipo Array de Tform a otro Array del Mismo tipo | morfeo21 | Varios | 5 | 17-08-2004 17:39:51 |
|