Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Trabajar con LIstView, columna e ingreso de datos. (https://www.clubdelphi.com/foros/showthread.php?t=85132)

andres_89 03-02-2014 18:20:20

Trabajar con LIstView, columna e ingreso de datos.
 
Hola Estimados,

Siempre he trabajado con ListBox, pero ahora quiero acomodar mis datos y buscando encontre Listview, estuve jugando con sus opciones pero no encuentro la opcion para eliminar la ultima columna que siempre aparece, les dejo la imagen de lo que quiero hacer:



la columna encerrada es la que quiero eliminar, siempre se crea cuando agrego columnas.

Otra consulta, como muestro un dato en cualquiera de las columnas?, por ejemplo quiero quisiera mostrar un String "Arturo" en la columna nombre.

Bueno eso es todo, gracias de antemano.

ecfisa 03-02-2014 20:00:06

Hola andres_89.

Lo que buscas no lo veo posible, pero podes ajustar al cliente las columnas existentes e impedir que las redimensionen, un ejemplo:

Unit1.h:
Código:

...
class TForm1 : public TForm
{
__published:        // IDE-managed Components
  TListView *ListView1;
  void __fastcall FormCreate(TObject *Sender);
private:        // User declarations
  void __fastcall ListViewWindowProc(TMessage &Msg);
...
}

Unit1.cpp
Código:

...

TWndMethod OldListViewProc = NULL;

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
  OldListViewProc = ListView1->WindowProc;
  ListView1->WindowProc = ListViewWindowProc;
}

// Impedir redimension
void __fastcall TForm1::ListViewWindowProc(TMessage &Msg)
{
  if(Msg.Msg == WM_NOTIFY) {
    const NMHDR *hdr = (NMHDR*) Msg.LParam;
    if((hdr->code==HDN_BEGINTRACKA) || (hdr->code==HDN_BEGINTRACKW) ||
      (hdr->code==HDN_DIVIDERDBLCLICKA) || (hdr->code == HDN_DIVIDERDBLCLICKW)){
      Msg.Result = TRUE;
      return;
    }
  }
  OldListViewProc(Msg);
}

// Ajustar columnas
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  TListView* LV = static_cast<TListView*>(ListView1);
  LV->Column[0]->Width = LV->Width - LV->Column[0]->Width - 4;
}

En cuanto a tu otra consulta, por favor abrí un nuevo tema con ella.

Saludos :)

andres_89 04-02-2014 06:19:01

Funciono código
 
Gracias ecfisa,

que pena que no se pueda eliminar, estuve viendo aplicaciones como el ccleaner, y tambien lo tiene esa columna demás.
Por ahora con tu código ya pude bloquearlo.^\||/

Saludos.


La franja horaria es GMT +2. Ahora son las 16:26:40.

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