| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Sab 03 Sep, 2005 7:42 am Asunto: Imagenes en una tabla, ok. Pero verla en el mismo DBGrid? |
|
|
Ya he leido varios post sobre guardar y leer imagenes en una tabla, que en InterBase o en MySQL, que no se puede JPG, que toca BMP, que toca armar un stream y mostrarla en un TImage y todo eso ya lo entendi y ya es suficiente.
Lo que yo quiero es ver todas las imagenes guardadas en la tabla en el mismo TDBGrido o en algun objeto, pero que de la apariencia de... mmm...
imagino que todos han grabado alguna vez un cd con el nero, verdad? se acuerdan de la ventanita de mensajes que sale diciendo: se inicio el proceso, se activo buffer undernoseque, se inicio grabacion a tantas x, se finalizó, etc. Se acuerdan que a la izquierda ponen un dibujito que hace alusion al mensaje? por ejemplo, si hay un error, aparece el dibujito de la admiracion...
Quiero hacer algo similar y se me ocurre que la imagen debe verse en el mismo DBGrid, o de algun metodo posible, pero que uno se pueda desplazar con la barra vertical y vea los mensaje antiguos y su correspondiente dibujito. Bueno, basta de ejemplos, creo que ya me hice entender. Alguien tiene alguna idea?
Muchas gracias! _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Sab 03 Sep, 2005 6:48 pm Asunto: |
|
|
¿Y no te iría mejor hacerlo con un TListView asignándole imágenes a través de TImgeList? creo que en tu caso sería mejor opción. Si no sabes a qué me refiero crearé un ejemplo y lo postearé. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Sab 03 Sep, 2005 7:37 pm Asunto: Voy a intentarlo |
|
|
Hola Tugui
Gracias por contestarme, acabo de leer tu sugerencia y estuve echandole un vistazo en builder y creo que si funciona. De todas formas ahora no tengo mucho tiempo para revisalo a fondo. Creo que trabajaré en ello esta noche.
Te agradeceria si tienes tiempo para postear el ejemplo...
QUE BUEN FORO!!  _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Sab 03 Sep, 2005 8:30 pm Asunto: |
|
|
Lo primero es poner la propiedad OwnerDraw del ListView a FALSE.
Y para ir cambiando las imágenes que salen a la izquierda de cada elemento mostrado pues por ejemplo podemos utilizar el evento OnCustomDrawItem:
Por ejemplo, si la fila es par o impar:
| Código: |
void __fastcall TForm1::ListView1CustomDrawItem(TCustomListView *Sender,
TListItem *Item, TCustomDrawState State, bool &DefaultDraw)
{
if (Item->Index &1){ //<-----Si la posición de la fila es impar...
Item->ImageIndex = 0;
}
else {//<-----Si la posición de la fila es Par...
Item->ImageIndex = 1;
}
}
|
En el ejemplo se valida si la fila es par o impar pero puedes validar muchas otras cosas según sean tus necesidades, los captions de los items, su posición en la lista, los subitems, etc... Y también aprovechar el mismo evento para cambiar colores de texto y de fondo de las filas a tu gusto. Y lógicamente para poder asignar imágenes a los items de este modo debes haber especificado un TImageList a la propiedad SmallImages del TListView y haber cargado las imágenes que quieras utilizar en el TImageList.
Sigue preguntando si te quedan más dudas. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Mie 07 Sep, 2005 5:14 pm Asunto: Lo he estado intentando... |
|
|
Hola Tugui
Quizas te pueda parecer muy torpe en esto, pero la verdad nunca he utilizado el ListView. Y no se bien como utilizarlo. Si ya se que me vas a decir, que lea la Ayuda y que hay muchos tutoriales donde dicen como funciona, pero te agradezco si me puedes hechar una mano en la forma de insertar filas o lineas en este objeto. Ah y si me puedes explicar las diferentes formas de ViewStyle.
Creo que me esta funcionando, hice lo siguiente:
- Todo lo que me dijiste
- Adicione un item por el dialogo Items
- Puse ViewStyle en vList
- y lo ejecuté
Se ven las imagenes y los items, pero la imagen titila, como si fuera problema del refresco de la pantalla, creo que se debe programar en otro evento... tu me dirás...
Espero tu respuesta. De antemano, muchas gracias! _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Mie 07 Sep, 2005 5:22 pm Asunto: Lo sigo intentando... |
|
|
Hola
No me titila o parpadea la imagen en el evento OnDrawItem, pero no me cambia las imagenes, es decir, en todos los items sale la misma imagen...
Espero tu respuesta... _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Mie 07 Sep, 2005 5:46 pm Asunto: |
|
|
¿Tienes un TImageList asociado a la propiedad SmallImages del ListView?
y si es así, ¿Cuantas imágenes has cargado en el TImageList?
1º- Cargar al menos dos imágenes diferentes en el TImageList.
2º- Asociar el TImageList con la propiedad SmallImages del TListView.
3º- Ajustar la propiedad ViewStyle del TListView al valor VsReport.
4º- Doble click en el TListView para mostrar el editor de columnas, añade
una o tantas como quieras.
5º- Y finalmente el código en el evento OnCustomDrawItem:
| Código: |
if (Item->Index &1){ //<-----Si la posición de la fila es impar...
Item->ImageIndex = 0;
}
else {//<-----Si la posición de la fila es Par...
Item->ImageIndex = 1;
}
|
Suerte. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
jacko Master


Registrado: 03 Sep 2005Mensajes: 287Ubicación: Colombia
|
Publicado: Vie 25 Nov, 2005 4:13 am Asunto: Por fin |
|
|
Si, gracias, por fin me funcionó... _________________ Dios es real... a menos que se declare entero! |
|
| Volver arriba |
|
 |
|