![]() |
posicion del cursor dentro de un listview
Amigos. Continuando con mi aplicativo ahora tengo un problema con el listview
Estoy cargando los datos de una tabla en este componente, ahora necesito saber la posicion del registro dentro del listview.. Alguien me puede ayudar por favor?? Gracias |
usa la propiedad Objects del TStrings
ListView1.Items.Objects[1] := Pointer(12); |
Gracias por la colaboracion, resulta que uso el codigo que me enviaste no existe la propiedad objects, por tanto no compila el programa. Uso delphi 6
|
No entiendo, en el titulo quieres saber la posición del cursor, pero al leer la descripción del problema veo cuando dices que quieres saber la posición del registro ¿Que es realmente lo que quieres y a que te refieres cuando dices que quieres saber la posición del registro?
|
Me refiero basicamente a la fila donde se encuentra ubicado el registro dentro del listview.
|
Para eso está Selected que te indica el primer item seleccionado de un ListView.
Ejemplos: Código:
|
Me corrijo a mi mismo ya que por lo que se ve no entendí bien la pregunta.
Hay varias maners de hacer lo que dices, pero creo que deberías explicar mejor que es lo que quieres hacer, ya que como te digo hay varias formas y quizás nos estemos enredando un poco. ¿Cómo obtienes los datos para el ListView? ¿Están en un Dataset? ¿Lo recorriste uno a uno y así lo cargaste en el ListView o de otra forma? Se me ocurren varias preguntas ahora mismo pero creo que si explicas un poco más te daremos una mejor respuesta. Siempre podrás recorrer el ListView hasta encontrar lo que buscas: Código:
for (int i=0; i < ListView->Items->Count; i++) |
Yo entiendo lo mismo que entendio Gabo... aunque con el ejemplo que Gabo a mostrado se puede obtener mas información, la posición tambien se puede encontrar asi:
|
Gracias GABO, pero tengo una duda ese codigo es delphi?? y en que evento deveria manajarlo..??
|
Cita:
1) Si, es codigo delphi. 2) Colocalo en el evento que lo necesites, por ejemplo, si es un boton lo puedes colocar en el OnClik, quizá en el onChange del Listview o donde mas te sirva. |
A ver si me explico mejor, los datos del listview los tomo de un query, quiero que en el momento de presionar el check en un registro el foco quede sobre ese registro para ir realizando una sumatoria, por lo tanto no me sirve hacer un for para buscar los que estan checkeados ya que debo realizar el proceso a medida que se van checkeando..
|
Jejeje, perdon antes de responderte lo siguiente quiero aclarar que No es Codigo Delphi, no se porque te dije que si, eso es codigo C++, pero para que convertirlo a Delphi solo debes cambiar los "->" por puntos.
|
Cita:
|
Ahh, ya, debiste comenzar por aqui http://www.clubdelphi.com/foros/showthread.php?t=50377, el for que te mostre en ese ejemplo no debe quitarle el foco al Check que seleccionaste.
|
He probado el codigo pero no funciona, le recomiendo a todos los que me puedan ayudar, estoy a punto de enloquecer con este reto..
|
Cita:
Cita:
Cita:
Cita:
Cita:
|
El lío que tienes es mantener la relación entre el ListView y los registros de la BBDD. Para ello en el propio ListView puedes guardar la clave primaria de la BBDD.
Al rellenar el ListView con los registros del Query, tendrás un bucle, pues dentro de ese bucle añadirías :
Listview1.Items es de tipo TListItems, y cada uno de ellos es un TListItem. El TListItem tiene la propiedad SubItems, y ésta última si es de tipo TStrings, y por tanto, tiene su propiedad Objects donde guardar la clave primaria. Yo la verdad, echo de menos el evento "onItemCheck", el ListView debería tenerlo :( Saludos |
La franja horaria es GMT +2. Ahora son las 05:12:28. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi