| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Laurana Cdt

Registrado: 15 Oct 2006Mensajes: 12
|
Publicado: Dom 29 Oct, 2006 5:18 pm Asunto: Problema cargando imagen en un TImage |
|
|
Hola, a ver el problema es que tengo que cargar una imagen de una BD en un TImage, la imagen es un BMP y lo que hago es lo siguiente:
if(frmCamareros -> TCamareros -> FieldByName("Cam_foto") != NULL)
imgFotografia->Picture->Assign(frmCamareros->TCamareros->FieldByName("Cam_foto"));
Dicho código va en el evento onActivate de un formulario donde muestro todos los datos de un registro de la tabla "TCamareros". Pues al ejecutar el programa, al abrir este formulario me da el siguiente error:
"Stream read error"
Alguien sabe que es lo que falla? gracias. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Dom 29 Oct, 2006 5:41 pm Asunto: |
|
|
En si la manera de pasar la imagen esta un poco errada, la forma correcta debe ser de la siguiente manera usando tu misma funcion quedaria asi, como no indicas el tipo de datos del campo, ni el gestor de base de datos, asumo que es Interbase o Firebird y qué el campo que usas es un BLOB, la funcion debe quedar asi
// creas un Stream y TBitmap
| Código: | TMemoryStream *msBMP = new TMemoryStream();
::Graphics::TBitmap *BitMap = new ::Graphics::TBitmap(); |
// grabas dentro del stream la imagen del campo
| Código: | frmCamareros->TCamareros->FieldByName("Cam_foto")->SaveToStream(msBMP); |
// reseteas el stream a la posicion 0
| Código: | msBMP->Seek(0,soFromBeginning); |
//Cargas la Imagen dentro del Bitmap temporal
| Código: | BitMap->LoadFromStream(msBMP); |
// y posteriormente le asignas la imagen al componente
| Código: | imgFotografia->Picture->Assign(BitMap); |
Saludos! _________________
 |
|
| Volver arriba |
|
 |
Laurana Cdt

Registrado: 15 Oct 2006Mensajes: 12
|
Publicado: Mar 31 Oct, 2006 12:38 pm Asunto: |
|
|
Hola, esa solución me da el error siguiente : "SaveToStream is not a member of TField"
La BD que uso es Paradox7 y el tipo de campo un Graphic. |
|
| Volver arriba |
|
 |
|