Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Desplazar la posición de una fila en un TListView

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Desplazar la posición de una fila en un TListView Responder citando

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. Wink
_________________
Nunca digas "Es imposible" sin intentarlo antes.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

//Al añadir un Item:

SendMessage(ListView1->Handle, WM_VSCROLL, SB_LINEDOWN, 0);

Debo decir que esta línea la he sacado del siguiente topic:

https://cppbuilder.es/viewtopic.php?t=4848&highlight=sendmessage

Gracias a su autor Wink .
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Gracias. Funciona bien.
_________________
Nunca digas "Es imposible" sin intentarlo antes.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.