Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2007
Avellas Avellas is offline
Miembro
 
Registrado: feb 2005
Posts: 31
Poder: 0
Avellas Va por buen camino
Smile 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
Responder Con Cita
  #2  
Antiguo 16-11-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
usa la propiedad Objects del TStrings

ListView1.Items.Objects[1] := Pointer(12);
Responder Con Cita
  #3  
Antiguo 16-11-2007
Avellas Avellas is offline
Miembro
 
Registrado: feb 2005
Posts: 31
Poder: 0
Avellas Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 16-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
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?
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 16-11-2007
Avellas Avellas is offline
Miembro
 
Registrado: feb 2005
Posts: 31
Poder: 0
Avellas Va por buen camino
Me refiero basicamente a la fila donde se encuentra ubicado el registro dentro del listview.
Responder Con Cita
  #6  
Antiguo 16-11-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Para eso está Selected que te indica el primer item seleccionado de un ListView.

Ejemplos:

Código:
 
if (ListView1->Selected)
 
...=ListView1->Selected->Caption;
 
...=ListView1->Selected->SubItems[0][0]);
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #7  
Antiguo 16-11-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
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++)
{

    if(ListView->Items->Item[i]->SubItems [0][0]==...;
    {
       ...
    }
}
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.

Última edición por Gabo fecha: 16-11-2007 a las 17:25:33.
Responder Con Cita
  #8  
Antiguo 16-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
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:

Código Delphi [-]
  ListView1.ItemIndex;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #9  
Antiguo 16-11-2007
Avellas Avellas is offline
Miembro
 
Registrado: feb 2005
Posts: 31
Poder: 0
Avellas Va por buen camino
Gracias GABO, pero tengo una duda ese codigo es delphi?? y en que evento deveria manajarlo..??
Responder Con Cita
  #10  
Antiguo 16-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Avellas Ver Mensaje
Gracias GABO, pero tengo una duda ese codigo es delphi?? y en que evento deveria manajarlo..??
Aunque te refieres a Gabo te respondere yo (Espero que no hayan problemas por esto )...

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.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 16-11-2007 a las 17:54:25.
Responder Con Cita
  #11  
Antiguo 16-11-2007
Avellas Avellas is offline
Miembro
 
Registrado: feb 2005
Posts: 31
Poder: 0
Avellas Va por buen camino
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..
Responder Con Cita
  #12  
Antiguo 16-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
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.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #13  
Antiguo 16-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Avellas Ver Mensaje
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..
Un For no te quitara el foco, de todas formas creo que sería conveniente que explicaras mas detalladamente el asunto.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #14  
Antiguo 16-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
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.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #15  
Antiguo 16-11-2007
Avellas Avellas is offline
Miembro
 
Registrado: feb 2005
Posts: 31
Poder: 0
Avellas Va por buen camino
He probado el codigo pero no funciona, le recomiendo a todos los que me puedan ayudar, estoy a punto de enloquecer con este reto..
Responder Con Cita
  #16  
Antiguo 19-11-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Cita:
Empezado por Avellas Ver Mensaje
Gracias GABO, pero tengo una duda ese codigo es delphi?? y en que evento deveria manajarlo..??
Cita:
Empezado por jhonny Ver Mensaje
Aunque te refieres a Gabo te respondere yo (Espero que no hayan problemas por esto )...

1) Si, es codigo delphi.
Cita:
Empezado por jhonny Ver Mensaje
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.
Si, bueno, creo que debí poner que era C++. Lo pensé en un principio pero imaginé que no tendrías problema en pasarlo a Delphi.

Cita:
Empezado por jhonny Ver Mensaje
Un For no te quitara el foco, de todas formas creo que sería conveniente que explicaras mas detalladamente el asunto.
Cita:
Empezado por Avellas Ver Mensaje
He probado el codigo pero no funciona, le recomiendo a todos los que me puedan ayudar, estoy a punto de enloquecer con este reto..
Lo siento Avellas, pero yo estoy perdido, no entiendo lo que quieres...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #17  
Antiguo 19-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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 :
Código Delphi [-]
var v :TlistItem;
begin 
  while not tabla1.eof do
  begin 
     v := listView1.Items.Add;
     v.Caption := lo quesea;

     v.SubItems[0].Objects[0] := Pointer(tabla1ClavePrimaria.AsInteger);

end;

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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Posicion del cursor dentro de un field de un dbgrid Kivan Varios 0 14-06-2005 12:37:34
Posicion cursor DBGrid en pantalla aram2r OOP 2 10-03-2005 16:11:09
Conocer posición del Cursor en un DBGrid gluglu Varios 1 14-02-2005 14:46:07
Posición Columna en ListView Igna OOP 2 02-11-2004 13:40:14
posición cursor en un tedit mosorio OOP 1 02-07-2003 23:35:07


La franja horaria es GMT +2. Ahora son las 15:51:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi