PDA

Ver la Versión Completa : Características de los ListView con Imágenes


madiazg
14-09-2008, 00:05:22
Hola a todos,
estoy usando el truco 467 para mostrar en un ListView los thumbnail de unas imágenes. Estos thumbail tienen un tamaño de 96x96 pixels. El problema es que estas imágenes aparecen en el ListView muy separadas entre si (ViewStyle : vsIcon). Además, a pesar de que no quiero mostrar el campo caption en el listview tengo que dejar un espacio vertical (ListView.Height) porque si no me aparece la barra del scroll vertical (tengo configurado el listview en formato apaisado)

¿Hay alguna forma de modificar el espacio entre las imágenes así como eliminar el espacio que ocuparía el campo caption para de esta forma disminuir el alto del ListView?

Saludos...
Miguel Angel
imagen3d.site88.net/ (http://imagen3d.site88.net/)

madiazg
14-09-2008, 19:13:46
El primer punto ya lo he solucionado. Se puede indicar la posición donde colocar una imagen en un listview:

with ListView1.Items.Add do
begin
ImageIndex := ListView1.Items.Count - 1;
Left := 100 * (ListView1.Items.Count - 1); //de 100 en 100 px.
end;


Si a alguien se le ocurre como solucionar la segunda parte de la pregunta...

Saludos...
Miguel Angel

madiazg
14-09-2008, 21:43:36
El segundo problema lo he minimizado con:

ListView1.Font.Height := 1;
pero no he resuelto el problema ya que, aparte de la altura del Font, queda un espacio entre la imagen y el caption que necesito eliminar. La solución sería un Listview con estilo Icon pero sin caption. ¿Alguien sabe si es posible?

Utilizo TurboDelphi por lo que no puedo instalar componentes de terceros...

Saludos...
Miguel angel

madiazg
17-09-2008, 18:39:41
Me adelante con que había resuelto el problema del espacio entre imágenes. Con el codigo:
with ListView1.Items.Add do
begin
ImageIndex := ListView1.Items.Count - 1;
Left := 100 * (ListView1.Items.Count - 1); //de 100 en 100 px.
end;

consigo que las imágenes se muestren de 100 en 100 px pero no selecciona correctamente la imagen.
Cuando hago click en algunas imágenes estas no se seleccionan como si conservara la posición por defecto de las imágenes a la hora de seleccionarlas. En cambio, cuando elimino la instrucción

// Left := 100 * (ListView1.Items.Count - 1); //de 100 en 100 px.

las imágenes se muestran muy separadas pero se seleccionan correctamente.

if ListView1.Selected <> nil then
Label1.Caption := IntToStr(ListView1.Selected.ImageIndex)


Lo curioso es que, cuando añado las imágenes, si las voy seleccionando desde la primera hasta la última, se seleccionan correctamente (desde la izquierda del ListView a la Derecha) pero el problema ocurre cuando selecciono una imagen anterior (una imagen a la izquierda de la última seleccionada).
¿Alguien me puede ayudar a resolver este problema?

Saludos...
Miguel Angel

madiazg
17-09-2008, 19:35:39
Bueeeeno... ya parece que lo he solucionado...
tenía LargeImages, SmallImages y SortImages con ImageList1. He eliminado SmallImages y SortImages y la cosa ya parece que funciona.

Caral
17-09-2008, 19:38:19
Hola
Que bueno que te sirvió, estamos para servirte.:D:D
Saludos

madiazg
17-09-2008, 19:43:56
Esto era lo más parecido ha hablar sólo... algo así como un monólogo...
En fin, espero que a alguien le ayude todo esto...
Saludos...
Miguel Angel

newtron
03-04-2012, 18:42:54
Hola.

Me interesaría echarle un vistazo al truco que hace referencia el amigo madiazg, el 467, pero no lo veo. ¿Alguna forma de acceder a él?.

Gracias y un saludo

ecfisa
03-04-2012, 19:04:55
Hola mi amigo, aquí te pongo el enlace: [Truco 467] (http://www.clubdelphi.com/trucos/index.php?id=467&scroll=130&scrollb=82)

Saludos. :)

newtron
03-04-2012, 19:58:57
Gracias amigo ecfisa. :)