![]() |
Lectura de TMemoryStream en componente FireMonkey
Buenas, no se si es el sitio correcto para exponer este problema, tengo una aplicación servidor conectada con una base de datos firebird, y luego tengo otra aplicación Android que muestra los datos de esa base de datos, hasta ahí todo bien, y cuando hago peticiones no hay problema, muestra listados con datos, combos, etc...
El problema esta cuando voy a mostrar una imagen, este es el sistema que sigo, la imagen la tengo en un campo BLOB, cuando la App pide esa imagen al servidor, el servidor la convierte en TMemoryStream, y la app lee ese TMemoryStream e intenta mostrarlo en un TImage de FireMonkey, con un LoadFromStream, y da error. He supuesto que puede haber incompatibilidades, pero quería pasar por aquí por si hay alguna forma mejor de hacerlo, o si estoy cometiendo algún error. Gracias, un saludo. |
Cita:
¿Y qué código usas? |
Hola, oscjae.
¿Te acordaste de colocar el puntero al inicio del TMemoryStream?
Es muy fácil olvidarse. Saludos. |
Hola JhonAlone, si lo pongo.
Desde el servidor (VCL) estamos utilizando la tecnologia de las TMS XDATA, se hace una peticion a traves de un Thread desde el movil (FireMonkey), de un registro de una tabla donde uno de los campos es un BLOB con la imagen. Una vez recibido el registro creo un MemoryStream con la imagen
en la linea en la que cargo la imagen en el bitmap da error de memoria, que no podia acceder a la direccion de memoria. |
Hola oscjae.
Has probado así:
Y también ¿estás seguro que fimg no es nil? Saludos. |
He probado lo que has dicho jhonalone, y me sigue dando error "Falla la lectura del Bitmap"
Veo que el error está al intentar cargar la imagen con la clase TBitmap de firemonkey, porque el Stream llega bien. |
Hola oscjae.
Si la carga de la imagen está dentro del TThread, puedes intentarlo así:
Transcribe el error concreto que te lanza el programa. Y el momento exacto del código. Así nos haremos una idea más exacta de lo que pasa. "Falla la lectura del Bitmap" no parece un error de FireMonkey en la App, sino un control que tú haces en tu propio código. Cuéntanos. Saludos. |
La franja horaria es GMT +2. Ahora son las 19:46:04. |
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