Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-07-2004
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
Sobre ListView

Hola a todos.

Tengo un pequeño problema. Tengo un Listview con 2 items.
Para localizar algo en el primer item pongo ListView.FindCaption(...), pero el problema viene cuando quiero localizarlo en el segundo item.

Me podrían ayudar?

Gracias
Responder Con Cita
  #2  
Antiguo 17-07-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No sé si lo he comprendido bien.

Si quieres localizar un dato que está en la segunda columna de un ListView, puedes usar un bucle así:

Código Delphi [-]
for i:= 0 to listView.items.count -1 do
begin
  if listview.items[i].Subitems[0] = 'pepe' then
     break;
end;

if i< Listview.items.count then ShowMessage(' Encontrado en el item '+inttostr(i));

No sé si hay una forma mejor, pero esta es la que he encontrado mirando rapidamente las propiedades y metodos.

Saludos
Responder Con Cita
  #3  
Antiguo 19-07-2004
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
Gracias Lepe por responder.

Yo lo que quiero es algo al FindCaption, e probado con FindData pero no soy capaz de hacerlo funcionar.

Tu idea ya la he probado, pero no kiero hacer un bucle para localizar el dato.

Creo que la solución puede estar en FindData pero ahí me kedo.

Saludos.
Responder Con Cita
  #4  
Antiguo 20-07-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
El método FindData sirve para buscar información asociada a cada elemento, pero no de Subitems, me explico, si quieres, puedes asociar un objeto (o registro) a cada elemento del ListView, para localizar esos datos. FinData solo tiene sentido si has añadido los elemntos de esta forma:
Código Delphi [-]
type TInfo = record       // Tipo Informacion
        HoraInicio,HoraFin : TDateTime; //podrías guardar cualquier cosa que se te antoje 
end;
    TpTInfo = ^TInfo; // Tipo Puntero al tipo Informacion

procedure TForm1.Button1Click(Sender: TObject);
var H :TpTInfo;
begin
  with ListView1.items.Add do
  begin
     Caption := 'PC3';
     SubItems.Add('Ocupado');
     SubItems.Add('');
     SubItems.Add('');
     SubItems.Add('');

    // ojo no hay control de errores de memoria....new podría dar una excepcion
     New(H);
     H^.HoraInicio := Now;
     H^.HoraFin:=IncMinute(h^.HoraInicio, 30);
     Data:= H; // al elemento añadido, le asociamos el registro.
  end;
end;
Y no creo que sea lo que necesitas.

Ten en cuenta que cada elemento del ListView tiene asociado un Tstring que son todas las columnas restantes del Listview, por tanto, no queda más remedio que acceder a cada elemento para despues mirar su propiedad Subitems.

Por otra parte a FindData tienes que pasarle el puntero que previamente has guardado en la propiedad Data, (en el ejemplo que he puesto, H) .

Solucion al tema: Buuuuuuucle sin alcohol

Saludos, espero que te aclare algo más

Última edición por Lepe fecha: 20-07-2004 a las 11:53:23.
Responder Con Cita
  #5  
Antiguo 20-07-2004
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
Gracias Lepe, me has explicado FindData de una manera excepcional.

Si no queda más remedio lo tendré que hacer con un bucle.

Me ha gustado mucho buuuuuuucle sin alcohol.

Saludos
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


La franja horaria es GMT +2. Ahora son las 01:33:29.


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