| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Mónica Cmdr

Registrado: 27 Sep 2002Mensajes: 136Ubicación: Pontevedra (España)
|
Publicado: Lun 20 Nov, 2006 12:08 pm Asunto: ListView: cómo selecciono dos líneas mediante código? |
|
|
Sigo con mis dudas con los ListView...
Lo que quiero hacer es que, cuando el usuario seleccione una línea mediante un click, se seleccione de manera automática la siguiente línea siempre que la primera línea cumpla una condición.
Tengo la propiedad MultiSelect a true, y la propiedad HideSelection a false.
En el evento OnSelectItem, tengo el siguiente código:
int indice=Item->Index;
if (Selected==true && condicion==true)
Lista->Items->Item[indice+1]->Selected=true;
Al ejecutar el programa y seleccionar una línea, se puede ver que la línea siguiente efectivamente se selecciona y permanece de color azul mientras el usuario tiene el botón del ratón pulsado. Pero en cuanto se suelta el botón, solo permanece seleccionada la primera línea.
¿Cómo puedo hacerlo?
Muchas gracias. |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mie 22 Nov, 2006 6:50 pm Asunto: |
|
|
Bueno, el parámetro Selected del evento OnSelectItem indica que el elemento está seleccionado (Selected = true) y tambien cuando dejar de estarlo (Selected = false); por lo que en el momento que seleccionas el siguiente elemento a través de código, se vuelve a disparar el evento, es por eso que sólo ves el fecto que deseas cuando mantienes presionado el botón del ratón....otra forma de hacerlo es utilizando el evento OnClick...
| Código: | void __fastcall TForm1::ListaClick(TObject *Sender)
{
// Se valida que al menos exista un elemento seleccionado y que
// el elemento seleccionado sea el penúltimo ( para evitar intentar
// seleccionar un elemento cuyo indice quede fuera del intervalo)
if ( Lista->Selected != NULL && Lista->Selected->Index < Lista->Items->Count - 1 )
Lista->Items->Item[Lista->Selected->Index + 1]->Selected = true;
} |
En esta porción de código solo faltaria agregar tu condición que deseas que se cumpla.
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
Mónica Cmdr

Registrado: 27 Sep 2002Mensajes: 136Ubicación: Pontevedra (España)
|
Publicado: Jue 23 Nov, 2006 11:05 am Asunto: |
|
|
| Muchas gracias Buildero, funciona de maravilla!! |
|
| Volver arriba |
|
 |
|