Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-12-2017
Ricardo2010 Ricardo2010 is offline
Miembro
 
Registrado: may 2010
Posts: 60
Poder: 14
Ricardo2010 Va por buen camino
Detectar item seleccionados en ListView

Buenas, tengo el inconveniente con la ListView que no he podido encontrar la forma de detectar cuando un item esta seleccionado. Lo que digo que tengo una ListView con la propiedad en AccessoryType en Checkmark, esto para que me muestre un check en cada item, pues bien se muestra correctamente y cuando le dan un clic lo marco o desmarco el item.
El problema es cuando una vez que trato de grabar debo recorrer la listview completa verificando los items que se encuentran marcados y los que no para ello he tratado distintas formas de realizarlo pero al momento de probar en el movil me da error
Lo que he realizado es

for I := 0 to ListView1.ItemCount-1 do
begin
// ShowMessage('valor '+ListView1.Items.Item[i].Text);

if ListView1.Items.Item[i].Objects.AccessoryObject.Visible then
begin
// valor:=I;
// showmessage (ListView1.Items.Item[i].Text ); cualquier acción que efectúe aquí me da error en la ejecución
end;
if ListView1.Items[i].Objects.AccessoryObject.Visible then
begin

// ShowMessage('valor '+ListView1.Items.Item[i].SubItems.Strings[1]);cualquier acción que efectúe aquí me da error en la ejecución
// showmessage (ListView1.Items.Item[ListView1.ItemIndex].Detail);
end;
end;

La pregunta es como puedo ver a que item le colocaron el true el check o en false recorriendo completa la listview

Gracias
Responder Con Cita
  #2  
Antiguo 11-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.011
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #3  
Antiguo 12-12-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.220
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
PuedeS pRobar a acceder con la propiedad CheckedIndexes de los Items.
Algo así:

Código Delphi [-]
procedure TForm2.ListView1Click(Sender: TObject);
var
  str:String;
  lItems:TArray;
  i:integer;
begin
  lItems := ListView1.Items.CheckedIndexes();
  Str := '';
  for I := 0 to Length(lItems) - 1 do begin
    Str := Str + '  ' + IntToStr(lItems[i]);
  end;
  Caption := Str;

  ListBox1.Clear;
  for I := 0 to Length(lItems) - 1 do begin
    ListBox1.Items.Add(ListView1.Items.Item[lItems[i]].Text);
  end;
end;

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 12-12-2017 a las 23:07:42.
Responder Con Cita
  #4  
Antiguo 12-12-2017
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
Otra Manera con FindDrawable

Saludos si a mí me paso lo mismo, es un hueco en los tutoriales y los videos que he visto casi todos solamente muestran la forma de crear los TlistView y TListBox pero en casi ninguno está la forma de acceder a la información mostrada, yo me pase casi una semana buscando en todas partes incluso la misma ayuda del Delphi y realmente pase trabajo para encontrar eso.

La forma que también me gusto que vi de Daniele Teti, para acceder a los resultados de los ítems en el TlistView por el nombre fue esta:



Código Delphi [-]
procedure TForm1.ListView1ItemClick(const Sender: TObject;
    const AItem: TListViewItem);
    var Test:string;
  begin
    Test := AItem.Objects.FindDrawable('ItemDePrueba').Data.asstring;
    ShowMessage(Test);
  end;
ItemDePrueba es un item que agrege al Tlistview
también creo que se puede asignar valores a esa propiedad data, no es solo para leer
Responder Con Cita
  #5  
Antiguo 12-12-2017
Ricardo2010 Ricardo2010 is offline
Miembro
 
Registrado: may 2010
Posts: 60
Poder: 14
Ricardo2010 Va por buen camino
primero gracias por responder.

Neftali, tengo problemas con la definición del TArray ya que esta no la encuentra , como la agrego esta en algún clase para poner en Uses o la tengo que definir en Type

Gracias
Responder Con Cita
  #6  
Antiguo 12-12-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.220
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Ricardo2010 Ver Mensaje

Neftali, tengo problemas con la definición del TArray ya que esta no la encuentra , como la agrego esta en algún clase para poner en Uses o la tengo que definir en Type

http://docwiki.embarcadero.com/Libra.../System.TArray
http://docwiki.embarcadero.com/Libra...ections.TArray

System.Generics.Collections
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 12-12-2017
Ricardo2010 Ricardo2010 is offline
Miembro
 
Registrado: may 2010
Posts: 60
Poder: 14
Ricardo2010 Va por buen camino
Neftali gracias, si la habia agregado pero como me da error de compilación creía que podría ser otra system , el error que me da es

Código Delphi [-]
[DCC Error] FormCheckList.pas(519): E2010 Incompatible types: 'TArray' and 'System.TArray'
Responder Con Cita
  #8  
Antiguo 13-12-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.220
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A veces cuando hay conflictos de este tipo, puedes hacer la definiciñon añadiendo delante el nombre de la unit, segun convenga:

Código Delphi [-]
  lItems:System.TArray;  lItems:System.Generics.Collections.TArray;

De todas formas, me acabo de dar cuenta de que el "parser" del editor nos ha jugado una mala pasada. La definición del array está mal, ya que el parser ha eliminado lo que estaba entre los signos de mayor y menor.
De ahí los problemas.

Compara esta imagen, con el código que puse más arriba:

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 13-12-2017 a las 16:20:24.
Responder Con Cita
  #9  
Antiguo 13-12-2017
Ricardo2010 Ricardo2010 is offline
Miembro
 
Registrado: may 2010
Posts: 60
Poder: 14
Ricardo2010 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
A veces cuando hay comflictos de este tipo, puedes hacer la definiciñon añadiendo delante el nombre de la unit, segun convenga:

Código Delphi [-]
  lItems:System.TArray;  lItems:System.Generics.Collections.TArray;

De todas formas me acao de dar cuenta de que el "parser" del editor nos ha jugado una mala pasada. La definición del array está mal, ya que el parser ha eliminado lo que estaba entre los signos de mayor y menor.
De ahí los problemas.

Compara esta imagen, con el código que puse más arriba:


Gracias Neftali
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Seleccionar un ítem de un ListView Angel.Matilla C++ Builder 7 30-05-2014 20:04:17
Problema al insertar item en ListView avechuche Varios 2 06-07-2013 02:32:40
Detectar el item seleccionado en RadioButton santiago14 Varios 1 23-02-2010 17:37:11
¿Como llenar un listview con datos seleccionados de un DBlookuplistbox? eduarcol OOP 1 11-08-2007 03:47:06
Posicionar un ListView en su último Item. DarkByte OOP 3 04-12-2004 21:22:42


La franja horaria es GMT +2. Ahora son las 12:09:11.


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