PDA

Ver la Versión Completa : cargar imagen


Max_E.
18-04-2008, 05:25:18
hola a todos::):)


en lugar de cargar una imagen JPG en una base de datos lo que are será guardar la ruta de la imagen en un campo alfanumérico (A) y lo mostrare en un Timage1 :p encontré esta idea buscando por Internet puesto que tengo muchos problemas para cargarlo directamente a la base de datos

ya logre cargar la ruta en un campo llamado 'ruta' obvio no¡¡¡

pero ahora tengo el problema de como mostrarlo en un Timage cuando ago click en un dbgrid que esta enlazado con el table

1º saco la ruta en un dbtext asignándolo al campo 'ruta' (por no se como hacerlo directamente)
2º pongo en el DBGrid1CellClick


image1.Picture.LoadFromFile(dbtext1.text);


pero me bota error

gracias de ante mano su muy valiosa ayuda

Neftali [Germán.Estévez]
18-04-2008, 10:23:24
...pero me bota error

¿Y el error es........?

juanlaplata
18-04-2008, 14:18:58
Prueba esto:
image1.Picture.LoadFromFile(pchar(trim(dbtext1.text)));
el Trim elimina los espacios al principio y final del string (por si los tiene y no nos damos cuenta, tal ves de error), y el pchar no se explicarlo pero se usa para trabajar con path's.

Delfino
18-04-2008, 15:51:37
image1.Picture.LoadFromFile(pchar(trim(dbtext1.text)));
image1.Picture.LoadFromFile(dbtext1.Field.AsString);

Max_E.
19-04-2008, 01:52:21
gracias a todos (Delfino, juanlaplata, neftali) por dedicar su tiempo a mi pregunta

ya pudo mostrar la imagen usando la recomendación de Delfino

image1.Picture.LoadFromFile(dbedit1.Field.AsString);

pero sigue mostrando el mismo error ' unknown picture file extension (.)' cuando ago click en una celda que no tiene aun una ruta, intente esto

try
if dbedit1.Field.AsString='' then
image1.Picture.LoadFromFile('E:\Administrador\Mis imágenes\sin') // una imagen llamada 'sin'
else
image1.Picture.LoadFromFile(dbedit1.Field.AsString);

puse en ves de '' tambien '.' y '(.)' :o:o:o da el mismo mensaje
tambien intente esto

try
image1.Picture.LoadFromFile(dbedit1.Field.AsString);
except
image1.Picture.LoadFromFile('E:\Administrador\Mis imágenes\sin');
end;

y lo mismo

que podra ser????
muchas gracias por sus sugerencias

roman
19-04-2008, 02:25:26
// una imagen llamada 'sin'


¿Los nombres de tus imágenes no tienen extensión? Pues sería conveniente que les pongas una, para que el LoadImage sepa con qué tipo de imagen trata. Además asegúrate de incluir la unidad jpeg en el formulario que contiene el DBGrid si es que vas a cargar imágenes jpg.

Por otro lado, olvídate del DBText. Si tienes, por ejemplo, un Table enlazado al DBGrid entonces saca directamente el valor de ahí:


Table.FieldByName('ruta').AsString;


Finalmente, no creo que el evento OnCellClick sea el más indicado para cargar la imagen. Más lógico parece el evento AfterScroll del Table.

// Saludos

Max_E.
19-04-2008, 06:26:46
Gracias roman, el problema era la extensión del archivo 'sin' :p:p ahora si funciona

y en cuanto a tu sugerencia de usar
Table.FieldByName('ruta').AsString;

también me resulto :):) muchas gracias a todos por su tiempo y ayuda



Saludos desde Lima - Perú