PDA

Ver la Versión Completa : Trabajar con LIstView, columna e ingreso de datos.


andres_89
03-02-2014, 18:20:20
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:

https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-ash3/t1/1511104_631685300218344_1726340274_n.jpg

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:

...
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

...

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
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.