Recuperar/Mostrar Imagen de ClientDataSet
Hola, que tal, recurro a la ayuda de ustedes de nuevo ya que me encuentro ante un nuevo problema que no he podido resolver por más que he probado.
Estoy trabajando sobre un código que alguién más comenzó a hacer, por lo cual a veces me es díficil de entender jeje, pero esta es la cuestión. El código lee y carga una serie de imágenes, las cuales las guarda en un componente ClienDataSet, de esta forma: Declaración de tipos: Código:
cImagen: TClientDataSet; Código:
if openImage.Execute then begin Código:
imagen.Picture := cImagenImagen; También, y abusando de su tiempo y atención, me podrían explicar de que forma se relaciona el ClientDataSet cImagen con las variables cImagenIdImagen, cImagenDescImagen, cImagenImagen? Es decir, cómo si les asigno valores se añaden al ClientDataSet si no son componentes directos de este? (Es decir, no se asignan de esta forma, por ejemplo, cImagen.Imagen o cImagen.cImagenImagen) Espero haberme explicado, y realmente agradezco su ayuda |
Hola.
No sé si me he enterado bien de lo que comentas pero puedes probar con esto.
De la segunda parte si que no me he enterado pero básicamente la historia es que la imagen la guardas en modo stream en el campo blob y posteriormente para recuperarla y asignarla al componente image tienes que usar la instrucción que te comento anteriormente. Saludos |
Que tal newtron, muchas gracias por tu ayuda, lamentablemente me manda error ya que LoadFromStream es de tipo TStream y cImagenImagen es de tipo TBlobField
[code] [DCC Error] imagenes.pas(87): E2010 Incompatible types: 'TStream' and 'TBlobField' [\CODE] Que otra cosa pudiera yo hacer? |
A ver....
prueba creando un stream a partir del campo TBlobField de esta manera:
No estoy yo muy familiarizado con el ClientDataset por lo que igual me estoy equivocando sintácticamente, pero la idea es esa. Recuerda declarar la variable Stream como TStream. Saludos |
Hola Beaker_,
revisa este hilo por si te sirve de ayuda. http://www.clubdelphi.com/foros/show...highlight=blob Saludos. |
También he visto este
http://www.clubdelphi.com/foros/show...highlight=blob Seguro que si buscas un poco más por los foros encontrarás más ejemplos porque estos los he encontrado en la primera página buscando blob. Saludos. |
newtron, te comento que lo que me aconsejaste ya lo había yo hecho pero de forma más directa (es decir, sin crear el TStream y ese código cargarlo directo a la imagen), sin embargo me da el siguiente error:
Cita:
Sin embargo, no me sirvió del todo, ya que si bien me carga bien la imagen, pero sólo si es JPG, y en mi sistema debe de cargar de distintos tipos de imagen (tif, gif, png, bmp, etc..., realmente son demasiados los tipos) y me manda error al cargar aquella que no es JPG. Ahora sí he buscado algo, pero no he encontrado nada parecido a mi problema |
Has probado con un obteto TImage de la siguiente forma.
No se si así te servirá, pero de todas formas ya te adelanto que seguramente con el gif no te valdrá porque hace falta componentes que delphi no lleva por defecto y que si no recuerdo mal son de pago. Saludos. |
La franja horaria es GMT +2. Ahora son las 08:26:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi