Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Galeria de Imágenes en Delphi 7 (Paradox) (https://www.clubdelphi.com/foros/showthread.php?t=46847)

lKinGl 11-08-2007 08:47:01

Galeria de Imágenes en Delphi 7 (Paradox)
 
Hola, despues de una incansable búsqueda me resultó inutil tratar de hacer una galeria de imágenes por que realicé un formulario de facturación pero queria que al agregar algun articulo se tuviera la libertad de elegir una imagen y guardarla junto con sus datos.

de tanto intentar y fallar codigos posibles para esta accion logré alfin está funcion

la falta de informacion no es buena asi que voy a explicar lo que hice ya que he visto en muchisimos foros la busca de esta solucion.

trataré de ser lo mas específico posible ok? :)

pasos:

1- crea una carpeta ( donde se guardará el project).
2- crea una sub carpeta donde guardarás las imagenes.
3- crea una tabla (paradox 7) con los siguientes campos( nombF,DirF)con el nombre de dbFoto.
4- inserta en el formulario un componente opendialog, un componente table, 5 componente buttons, 1 componente label,un componente image y finalmente 2 componentes edit.
5-al button 1 lo llamaremos cargar al button 2 lo llamaremos guardar al buton 3 lo llamaremos cerrar al buton4 lo llamaremos anterior y al buton5 lo llamaremos siguiente.:)
6- el componente label es para que vaya encima del edit2 llamado nombre:

ok ya tenemos armado el formulario ahora vamos con el codigo :D

ahora solo haremos doble clic en cualquier parte vacia del formulario y ponemos este codigo

Código Delphi [-]
// ponemos los edit en blanco (no me gusta usar el clear por que en algunos casos da error :)
edit1.Text:='';
edit2.Text:='';
//enlazamos la tabla con el componente table
TABLE1.DatabaseName:=ExtractFilePath(Application.ExeName);
Table1.TableName:='bdfoto.db';
Table1.Open;


luego hacemos doble clic al boton cargar y ponemos este codigo

Código Delphi [-]
OpenDialog1.Execute;
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
edit1.Text:=OpenDialog1.FileName;
luego hacemos doble clic en el boton guardar y ponemos este codigo
Código Delphi [-]
table1.Insert;
table1.FieldValues['dirf']:=edit1.Text;
table1.FieldValues['nomf']:=edit2.Text;
table1.post;
application.MessageBox('Foto Guardada','Guardar');
luego hacemos doble clic al boton anterior y ponemos este codigo
Código Delphi [-]
table1.prior;
edit1.Text:=table1.FieldValues['dirf'];
edit2.Text:=table1.FieldValues['nomf'];
 Image1.Picture.LoadFromFile(edit1.text);

luego hacemos doble clic en el boton siguiente y ponemos este codigo
Código Delphi [-]
table1.Next;
edit1.Text:=table1.FieldValues['dirf'];
edit2.Text:=table1.FieldValues['nomf'];
Image1.Picture.LoadFromFile(edit1.text);

y luego tienen que hacer los siguientes 21 pasos:

era un chiste ya esta listo jejejeje.

recuerda que para que el programa funcione debe haber imagenes en la carpeta donde se creo el project...

Espero les sirva a mi me sirvio sin problemas :D

como funciona?: funciona es guardando la ruta de acceso en la tabla ( y todo el mundo se quema las neuronas averiguando en internet como insertar graficos en una tabla).. no digo que no se pueda sino que es algo fastidioso y de paso que vas a recargar la base de datos de muchos de MB por que en la tabla no se guarda jpg ni bmp ni gif en la tabla se guarda es mediante codigos binarios en fin....... creo que mi solucion es mucho mas simple y cumple la misma funcion :)

lKinGl 11-08-2007 08:47:49

Contacto
 
cualquier duda me pueden enviar un mensaje a rey3_@hotmail.com:)

lKinGl 11-08-2007 08:50:37

ah se me habia olvidado un pequeño detalle antes de poder usar los botones anterior y siguiente deben cargar una imagen al formulario y guardarla bye bye!!!:)

Delphius 11-08-2007 14:15:12

lKinGl, gracias por tu aportación.
Se que hace poco te diste de alta en los foros... pero... ¿Sería posible que edites tus mensajes y encierres el código entre las etiquetas [ DELPHI ] Y [ /DELPHI ] (sin los espacios en blanco)?
Verás como tu código se hace más legible y fácil de entender.

Y con respecto a lo de guardar una imagen en una base de datos. No es por una cuestión de reventarse los sesos. Todo dependerá de la seguridad que se busque, de las necesidades y/o requisitos entre otros factores.
Para entornos en donde no se requiere tener un estricto control de imágenes para trabajar, y sabiendo que se operan con pocas imágenes... lo más habitual es guardarlas en un directorio.
Pero... para un sistema altamente sencible y/o que opera a niveles de imágenes, guardarlas en una base de datos es altamente recomendable.

Como vez, son dos puntos extremos y hay diferentes matices entre uno y otros.

Saludos,

eduarcol 11-08-2007 15:47:34

Cita:

Empezado por Delphius (Mensaje 222145)
Pero... para un sistema altamente sencible y/o que opera a niveles de imágenes, guardarlas en una base de datos es altamente recomendable.

Esta muy bueno tu analisis pero en el caso de tablas Paradox, es algo un poco inviable tablas de imagenes, ya que el peso se pone muy pesado al momento de abrir los formularios, por eso la soluciona uqe da el amigo

Neftali [Germán.Estévez] 13-08-2007 12:24:19

Se agrade el aporte.

courtois 14-08-2007 09:38:06

Cita:

Empezado por eduarcol (Mensaje 222152)
... en el caso de tablas Paradox, es algo un poco inviable tablas de imagenes, ya que el peso se pone muy pesado al momento de abrir los formularios, por eso la soluciona uqe da el amigo

yo creo que si los diseñadores de paradox añadieron los campos imagen no debe ser tan inviable usarlos, de acuerdo a las especificaciones de las tablas de paradox 7 se pueden almacenar blobs de hasta 256MB en un solo campo, ahora, si usas fotos vga en formato jpg pues te ocupan unos tristes 25kb y que la especificacion dice que tus tablas pueden medir hasta 2GB facilmente puedes almacenar unas 80 mil fotos en una sola tabla, respecto a si pesa o no a la hora de abrir el formulario cabria la pregunta, realmente necesitas abrir 80mil registros al abrir tu formulario? una maquina sencilla puede manejar eso, pero supongamos que usas una maquina obsoleta, bueno, tienes mas de una forma de solucionarlo, querys, filtros, carga progresiva, ahora si necesitas visualizarlas todas al mismo tiempo, por ejemplo en un reporte o grid ah pues definitivamente el motor de base de datos leera mas rapido los datos que continuas lecturas al sistema de archivos, y en ambos casos se consumira la memoria, aunque tomando en cuenta las capacidades del caching y manejo de memoria virtual del manejador de base de datos es posible que usar una tabla finalmente sea la opcion mas conveniente, en fin, es interesante.

eduarcol 14-08-2007 15:14:09

Estoy totalmente de acuerdo con tu analisis amigo courtois, pero te lo digo por experiencia propia, en estos momentos tengo un sistema realizado en oaradox con 4 años seguidos de funcionamiento, en algun momento me pidieron agregarle un modulo donde pudiera guardar los documentos digitalizados, el asunto es que si trabajas en red se comienza a notar lo lento, por eso acote que estaba de acuerdo con el analisis de delphius pero quise aportar los problemas que me ha dado

DOS 15-08-2011 03:27:49

Se muy bien que estoy reviviendo un muerto de hace varios años, pero es justo lo que buscaba.
El asunto es que me figura como no declarado Image1, como lo declaro?

ecfisa 15-08-2011 06:20:37

Hola DOS.

Aunque no probé el código, lKinGl lo menciona aquí:
Cita:

4- inserta en el formulario un componente opendialog, un componente table, 5 componente buttons, 1 componente label, un componente image y finalmente 2 componentes edit.
Es decir que tenes que agregar al form un componente TImage (pestaña Aditional).

Un saludo.

DOS 16-08-2011 05:37:08

Cita:

Empezado por ecfisa (Mensaje 409429)
Hola DOS.

Aunque no probé el código, lKinGl lo menciona aquí:

Es decir que tenes que agregar al form un componente TImage (pestaña Aditional).

Un saludo.

Muchas Gracias, ahora si :D

egostar 16-08-2011 19:26:28

Cita:

Empezado por DOS (Mensaje 409418)
Se muy bien que estoy reviviendo un muerto de hace varios años, pero es justo lo que buscaba.
El asunto es que me figura como no declarado Image1, como lo declaro?

Este comentario (aunque involuntario) me entristeció, y es que efectivamente nuestro amigo |KinG| murió en Diciembre del año 2008. RIP :(

DOS 17-08-2011 18:49:40

Pido mil disculpas, por el comentario a cualquiera que le pueda afectar, no tenia ni idea, hace poco que entre al foro.

egostar 17-08-2011 18:59:56

Cita:

Empezado por DOS (Mensaje 409602)
Pido mil disculpas, por el comentario a cualquiera que le pueda afectar, no tenia ni idea, hace poco que entre al foro.

Hola DOS

No hay nada de que pedir disculpas, simplemente me recordó el triste fallecimiento de Reynaldo. Por supuesto mi comentario no fué para hacerte sentir mal.

Saludos

ecfisa 17-08-2011 19:11:07

Cita:

Empezado por DOS (Mensaje 409602)
Pido mil disculpas, por el comentario a cualquiera que le pueda afectar, no tenia ni idea, hace poco que entre al foro.

Hola DOS.

No tenés motivo alguno para disculparte, como bién has dicho no estabas al tanto del lamentable acontecimiento.
Estoy completamente seguro que el amigo egostar, no hizo la alusión para provocarte un sentimiento de culpa, sino para expresar
la tristeza que le provoca su pérdida y la sorpresa ante las bromas funestas, que a veces nos juega el destino.

Un saludo.


La franja horaria es GMT +2. Ahora son las 14:09:39.

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