| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Lun 05 Ene, 2004 11:26 am Asunto: Desplazar la posición de una fila en un TListView |
|
|
Hola a todos.
Tengo un TListView con 6 items y donde sólo caben 6 items visible, por lo que la barra de desplazamiento vertical aún no ha hecho aparición.
Cuando añado un item al final de la lista, aparece la barra de desplazamiento vertical, pero el item nuevo no es visible. ¿Cómo puedo hacer para que se desplace la ScrollBar o para activar la visualización del item oculto? He buscado y he encontrado que un TListView tien la propiedad ItemTop (o TopItem, no recuerdo), pero ésta es de sólo lectura, por lo que no puedo cambiarla por código.
Necesito una mano amiga.
Hasta luego. Cuídense.  _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Lun 05 Ene, 2004 4:28 pm Asunto: |
|
|
Puedes probar esto:
| Código: |
int x=Lista->Items->Count;
TPoint Pt=Lista->Items->Item[x-1]->GetPosition();
Lista->Scroll(Pt.x, Pt.y);
|
Creo que es lo que necesitas[/code] |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Lun 05 Ene, 2004 4:42 pm Asunto: |
|
|
Muchas gracias Tugui y Marky. Voy a probar vuestros códigos.
Después de enredar en un foro de Delphi encontré algo parecido a lo que me pones tú, Tugui:
SendMessage(ListBox1->Handle,LB_SETITEM,n,0);
Creo que era algo así. Después busqué en la ayuda del API y encontré que esto sólo vale para TListBox y algún otro control similar, pero no para el TTreeView (n es la posición del item a visualizar). No obstante, la idea es la misma que la que me indica Tugui. En cuanto lo pruebe ya os comento.
Gracias a todos. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mie 07 Ene, 2004 11:48 am Asunto: |
|
|
Gracias. Funciona bien. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Jue 08 Ene, 2004 11:12 am Asunto: |
|
|
Hola. Había una pega pero ya está resuelta. Cuando añades un item al final, con
SendMessage(ListBox1->Handle,LB_SETITEM,n,0);
salta una línea y funciona.
Pero si añado un item, desplazo la lista hasta arriba y luego añado otro item, esto ya no vale porque avanza una línea del scroll y no llega al final.
Después de buscar en la ayuda den SDK32 Developer's Reference encontré lo que buscaba:
SendMessage(ListBox1->Handle,LB_BOTTOM,n,0);
Allí tenéis los distintos mensajes que podéis enviar al scrollbar que queráis.
Un saludo a todos y a seguir bien. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
|