Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Busquedad en un listview

Hola lo que quiero es cargar un txt en un listview. Y luego de que se carguen todos los datos, buscar uno en particular por su numero de documento.
Con este codigo logro listar el primer registro de un txt. Y no todos.

Código:
 void __fastcall TForm1::ShowRegister(const int pp)
{
  TListItem *lItem = ListView1->Items->Add();
  lItem->Caption = TS->Strings[pp];
  lItem->SubItems->Add(TS->Strings[pp+1]+" "+TS->Strings[pp+2]);
}
Responder Con Cita
  #2  
Antiguo 14-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola eennzzoo.

Te hice un ejemplo donde si se encuentra el documento buscado, pone los datos del ListView en color rojo y negrita.
Código:
...
// Configuración echa en el evento OnCreate para clarificar,
// podes realizala desde el Object Inspector en tiempo de diseño. 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  ListView1->Align = alTop;
  ListView1->Columns->Add();
  ListView1->Columns->Add();
  ListView1->Column[0]->Caption = "DOCUMENTO";
  ListView1->Column[0]->Width   = 100;
  ListView1->Column[1]->Caption = "NOMBRE Y APELLIDO";
  ListView1->Column[1]->Width   = 350;
  ListView1->ViewStyle = vsReport;
}

void __fastcall TForm1::btnFileOpenClick(TObject *Sender)
{
  if (OpenDialog1->Execute()) {
    TListItem *it;
    TStrings *TS = new TStringList;

    ListView1->Items->Clear();
    TS->LoadFromFile(OpenDialog1->FileName);
    
    for(int i= 0; i< TS->Count-1; i+= 3) {
      it = ListView1->Items->Add();
      it->Caption = TS->Strings[i];
      it->SubItems->Add(TS->Strings[i+1]+" "+TS->Strings[i+2]);
    }

    delete TS;
  }
}

void __fastcall TForm1::btnBuscarClick(TObject *Sender)
{
  TListItem *it = ListView1->FindCaption(0,
    Trim(EditDoc->Text), true, true, true);
  if (it) ListView1->ItemIndex = it->Index;
}

void __fastcall TForm1::ListView1AdvancedCustomDrawItem(
      TCustomListView *Sender, TListItem *Item, TCustomDrawState State,
      TCustomDrawStage Stage, bool &DefaultDraw)
{
  TCanvas *CV = Sender->Canvas;

  CV->Font->Style = CV->Font->Style >> fsBold;
  CV->Font->Color = clBlack;
  if (Item->Index == Sender->ItemIndex) {
    CV->Font->Style = CV->Font->Style << fsBold;
    CV->Font->Color = clRed;
  }
}

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 15-03-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola eennzzoo.

Te hice un ejemplo donde si se encuentra el documento buscado, pone los datos del ListView en color rojo y negrita.
Código:
...
// Configuración echa en el evento OnCreate para clarificar,
// podes realizala desde el Object Inspector en tiempo de diseño. 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  ListView1->Align = alTop;
  ListView1->Columns->Add();
  ListView1->Columns->Add();
  ListView1->Column[0]->Caption = "DOCUMENTO";
  ListView1->Column[0]->Width   = 100;
  ListView1->Column[1]->Caption = "NOMBRE Y APELLIDO";
  ListView1->Column[1]->Width   = 350;
  ListView1->ViewStyle = vsReport;
}

void __fastcall TForm1::btnFileOpenClick(TObject *Sender)
{
  if (OpenDialog1->Execute()) {
    TListItem *it;
    TStrings *TS = new TStringList;

    ListView1->Items->Clear();
    TS->LoadFromFile(OpenDialog1->FileName);
    
    for(int i= 0; i< TS->Count-1; i+= 3) {
      it = ListView1->Items->Add();
      it->Caption = TS->Strings[i];
      it->SubItems->Add(TS->Strings[i+1]+" "+TS->Strings[i+2]);
    }

    delete TS;
  }
}

void __fastcall TForm1::btnBuscarClick(TObject *Sender)
{
  TListItem *it = ListView1->FindCaption(0,
    Trim(EditDoc->Text), true, true, true);
  if (it) ListView1->ItemIndex = it->Index;
}

void __fastcall TForm1::ListView1AdvancedCustomDrawItem(
      TCustomListView *Sender, TListItem *Item, TCustomDrawState State,
      TCustomDrawStage Stage, bool &DefaultDraw)
{
  TCanvas *CV = Sender->Canvas;

  CV->Font->Style = CV->Font->Style >> fsBold;
  CV->Font->Color = clBlack;
  if (Item->Index == Sender->ItemIndex) {
    CV->Font->Style = CV->Font->Style << fsBold;
    CV->Font->Color = clRed;
  }
}

Saludos
Hola me salen los siguientes errores:
[C++ Error] buscar.cpp(77): E2316 'ItemIndex' is not a member of 'TListView'
[C++ Error] buscar.cpp(131): E2316 'ItemIndex' is not a member of 'TCustomListView'
Responder Con Cita
  #4  
Antiguo 15-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Probe el código antes de publicarlo y funciona correctamente, tal vez se deba a versiones distinas de C++ Builder.

Reemplaza el anterior código del evento OnAdvancedCustomDrawItem por este:
Código:
void __fastcall TForm1::ListView1AdvancedCustomDrawItem(
      TCustomListView *Sender, TListItem *Item, TCustomDrawState State,
      TCustomDrawStage Stage, bool &DefaultDraw)
{
  TCanvas *CV = ListView1->Canvas;

  CV->Font->Style = CV->Font->Style >> fsBold;
  CV->Font->Color = clBlack;
  if (Item->Index == ListView1->ItemIndex) {
    CV->Font->Style = CV->Font->Style << fsBold;
    CV->Font->Color = clRed;
  }
}
Si continuas teniendo problemas avisame y te adjunto el los fuentes para que puedas revisarlos con tranquilidad.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 15-03-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Probe el código antes de publicarlo y funciona correctamente, tal vez se deba a versiones distinas de C++ Builder.

Reemplaza el anterior código del evento OnAdvancedCustomDrawItem por este:
Código:
void __fastcall TForm1::ListView1AdvancedCustomDrawItem(
      TCustomListView *Sender, TListItem *Item, TCustomDrawState State,
      TCustomDrawStage Stage, bool &DefaultDraw)
{
  TCanvas *CV = ListView1->Canvas;

  CV->Font->Style = CV->Font->Style >> fsBold;
  CV->Font->Color = clBlack;
  if (Item->Index == ListView1->ItemIndex) {
    CV->Font->Style = CV->Font->Style << fsBold;
    CV->Font->Color = clRed;
  }
}
Si continuas teniendo problemas avisame y te adjunto el los fuentes para que puedas revisarlos con tranquilidad.

Saludos
Sigue igual.
Responder Con Cita
  #6  
Antiguo 15-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

El archivo .zip incluye el codigo fuente y el ejecutable (para probarlo renombralo de .ex_ a .exe).

Saludos
Archivos Adjuntos
Tipo de Archivo: zip ListView.zip (15,4 KB, 3 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 15-03-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

El archivo .zip incluye el codigo fuente y el ejecutable (para probarlo renombralo de .ex_ a .exe).

Saludos
Que raro me tira los mismos errores.
Responder Con Cita
  #8  
Antiguo 15-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

He probado el código en tres equipos con diferentes S.O. y funciona correctamente. Esto hace que los errores que mencionas, me resulten subjetivos e imposibles de reproducir; al menos sin saber mas datos del entorno y herramientas que estas usando.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 15-03-2014
Avatar de eennzzoo
eennzzoo eennzzoo is offline
Miembro
NULL
 
Registrado: nov 2013
Ubicación: Argentina
Posts: 59
Poder: 11
eennzzoo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

He probado el código en tres equipos con diferentes S.O. y funciona correctamente. Esto hace que los errores que mencionas, me resulten subjetivos e imposibles de reproducir; al menos sin saber mas datos del entorno y herramientas que estas usando.

Saludos
Que raro tengo builder 5. Igual gracias.
Responder Con Cita
  #10  
Antiguo 16-03-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola eennzzoo.

Encontré un artículo sobre del uso del control TListView que seguramente te será útil: Windows Controls: The List View.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Busquedad en un txt eennzzoo C++ Builder 7 14-03-2014 17:06:15
listview chuli17 Lazarus, FreePascal, Kylix, etc. 1 21-02-2011 12:20:37
ListView y sus campos !!! Ledian_Fdez OOP 7 13-01-2010 07:23:35
Listview... con ADO Victor Vega SQL 10 08-09-2007 05:43:35
Uso de ListView lucero_chivas C++ Builder 3 27-09-2006 17:38:00


La franja horaria es GMT +2. Ahora son las 23:54: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