FoxPro/Visual FoxPro - Manejo de imàgenes en grid

 
Vista:
sin imagen de perfil

Manejo de imàgenes en grid

Publicado por Akiko (188 intervenciones) el 02/07/2003 15:58:12
Gracias por tu interés

Tengo el siguiente problema: en un grid de una sola columna requiero cargar en el currentcontrol un objeto image. Sé que me está registrando el número correcto de filas en el grid porque cuando le añado bordes el objeto image me muestra un número de filas que se corresponden con el número de registros de imágenes. La tabla me almacena el path de cada imagen en el sistema y ese dato es el que requiero manejar en el grid (objeto image). La idea es tener una especie de lista de imagenes para que cuando haga clic en alguna de ellas se me muestre en un objeto image más grande y externo al grid. No me muestra ninguna imagen pero se cumple lo dicho anteriormente. Qué debo hacer???

Gracias por tu ayuda

AKIKO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Manejo de imàgenes en grid

Publicado por Roman Suazo (2723 intervenciones) el 03/07/2003 17:05:14
Ok, se que anteriormente te habia recomendado usar grids para usar
imagenes, el asunto es posible pero es horrible trabajar con ello
(ahora que lo pruebo me doy cuenta), se vuelve exageradamente lenta la forma (especialemente si los archivos son medianamente grandes). En pocas palabras no es recomendable.

Ahora, como veo que no tienes que poner informacion de las tablas en
el control, entonces podrias probar con alguno de los controles activex que tiene tu maquina, hay uno que es bueno para esto, creo que se llama image list view o algo por el estilo, este control te permite ver una lista de imagenes asi como se mirarian en la ventana del control panel
del windows. Si encuentro el control en mi maquina, pruebo algo y te cuento. Si no llegaras a contestar esta respuesta exponiendo tus inquietudes, etc, entonces asumiria que ya no te interesa resolver el
asunto entonces ahi dejaria el caso.

Saludos

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Manejo de imàgenes en grid

Publicado por Akiko (188 intervenciones) el 03/07/2003 18:08:58
Ok estoy interesado en lo que me dices. A ver dime como se llama el control amigo.

ESpero tu respuesta

SALUDOS

AKIKO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Manejo de imàgenes en grid

Publicado por Roman Suazo (2723 intervenciones) el 04/07/2003 00:16:04
Estuve investigando acerca de los controles. Para hacer lo que quieres
ocupas:el control listview y el image list, los dos trabajan conjuntamente
En tiempo de diseño los controles te dan unas pantallas para que pongas los archivos y demas. Desfortunadamente, programaticamente
no tengo ni idea de como hacerlo, es decir, llenar el image list con
los archivos de la tabla y despues desplegarlos en el otro control.
(habria que investigar bien los metodos y propiedades)

Otra opcion que encontre es usar un listbox, pero trae los incovenientes
que queriamos evitar. El principal defecto es que me imagino que tienes
muchos archivos y que tienen un tamaño muy grande (asi no se pueden ver en listbox). Por lo tanto tienes que ver cambiar el tamaño de los achivos para hacerlos visibles (todos del mismo tamaño o si no se miran feos). Si no es problema para ti eso solo pon este codigo en
el init de la forma:

SELEC descripcionFoto, direccion fotos FROM tabla INTO ARRAY fotos

FOR i = 1 TO ALEN(fotos)

THISFORM.list1.ADDITEM(fotos[i,1])
THISFORM.list1.PICTURE[i]=di[i,2]

ENDFOR

Continua...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

RE:Manejo de imàgenes en grid

Publicado por Roman Suazo (2723 intervenciones) el 04/07/2003 00:28:19
EL codigo practicamrnete hace esto:

-De tu tabla saca la direccion del archivo y la correspondiente descrip-cion

-empieza a llenar el listbox co la descripcion y le dice que figura mostrar
con el valor de la direccion

Despues para "refrescar" la imagen grande que quieres usar, solo
pon un control image sobre el formulario (una de las propiedades de
este control es strech, ponla=2)

Despues en el evento click y keypress del listbox debes poner un
codigo que agarre la informacion de la fila actual (es decir la descripcion), despues buscas el correspondiente registro en la tabla,
y copias la direccion del archivo en la propiedad picture del control
imagen y asi funcionara como quieres.

Por cierto hay un error en el codigo que te di, debe ser

THISFORM.list1.PICTURE[i]=fotos[i,2]

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Manejo de imàgenes en grid

Publicado por Roman Suazo (2723 intervenciones) el 04/07/2003 23:25:29
Ok, encontre como hacerlo con controles activex en el INIT de la forma pone:

SELEC tabla.pic, tabla.descripcion FROM tabla INTO ARRAY fotos

FOR i=1 TO ALEN(fotos,1)
THIS.olecontrol1.listimages.ADD(i,fotos[i,2],LOADPICTURE(fotos[i,1]))
ENDFOR

THIS.olecontrol2.object.icons= this.olecontrol1.object
THIS.olecontrol2.object.smallicons=this.olecontrol1.object

FOR i=1 TO ALEN(fotos,1)
THIS.olecontrol2.listitems.ADD(i,,fotos[i,2],i)
ENDFOR

Ahora solo tenes que poner los dos controles en la forma, donde
olecontrol1=listimage. Ahora si las imagenes que tienes son grandes
lo mas seguro es que el control se va a tardar mucho en llenarse.
El caso ideal, es que te consigas un editor de imagenes, que te permita cambiar todas esas imagenes en archivos .ICO. buscate un
programa que te haga eso en grupo. Si lo encuentras me avisas !!!

A mi el programita me funciono pero note que se estaba tardando.
Ya para saber que imagen se selecciono checa la propeidad selecteditem o algo parecido. Asi podras aplicar lo mismo que te expuse con la solucion implementada con un listbox.

Saludos

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ok Romàn pero

Publicado por Akiko (188 intervenciones) el 07/07/2003 18:06:28
Muchìsimas gracias por tu valiosa orientaciòn ahora si estoy claro pero tengo una inquietud, Cuando se muestre el control que me ewxpondrà la lista de imagenes, se visualizarà automàticamente la imagen??? Esa es mi duda y en cuanto a algo que mencionaste en uno de los mensajes anteriores, te dirè que no son muy grandes las imàgenes dentro del control, es decir que la visualizaciòn tiene una tamaño aproximado de unos 5 centìmetros horizontal por unos 4 centìmetros vertical, son de alta resoluciòn en formato jpg o tambien gif o bmp. Voy a poner en practica tu soporte y te mando un ejemplo para que vas como me quedò.

Muchas gracias amigo

AKIKO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ok Romàn pero

Publicado por Roman Suazo (2723 intervenciones) el 07/07/2003 19:44:57
*Muchìsimas gracias por tu valiosa orientaciòn ahora si estoy claro pero *tengo una inquietud, Cuando se muestre el control que me ewxpondrà *la lista de imagenes, se visualizarà automàticamente la imagen???

Si, todas las imagenes se veran dentro del control, recuerda que el codigo debe ir en el init de la forma, los dos controles activex deben
ser de la misma version. En uno pones las imagenes en el otro las muestras.

Yo probe el programita con pocas imagenes, pero definitvamnete eran
mas grandes que las que utlizas.

Probaste la solucion peor usando el listbox?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar