Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Fijar columnas en un TListView

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Fijar columnas en un TListView Responder citando

¿Qué puedo hacer para que el ancho de las columnas en un TListView no pueda cambiarse en tiempo de ejecución con el cursor del ratón cuando se muestra la cabecera de las mismas?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Código:


Object Inspector -> Columns

...

MaxWidth -> 200
...

MinWidth -> 200
...
Width -> 200

Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Thanks! Smile
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Llevo tiempo queriendo mejorar este "problema" y por mas que leo no lo consigo, pero he visto listviews donde al poner el cursor entre la columnas no cambia el cursor, es decir, no te da opción a estirar ni acortar la columna, aunque, usando la solución de Felip, vuelvan a su tamaño original

Alguien sabe como evitar que se modifiquen las columnas en un listview? pero sin posibilidad de estirar por parte del user

Microsoft daba una "solución", que no entendí, interceptando mensajes
Cita:
puedes subclasificar el 'ListView' e interceptar el mensaje
"HDN_BEGINTRACK", en ese punto podrás denegar su redimensionamiento. En el
siguiente enlace encontrarás un completo ejemplo que te enseñará eso y más:

· Visual Basic Subclassing Routines
WM_NOTIFY: Detect Sizing Notifications from a ListView ColumnHeader
http://vbnet.mvps.org/index.html?code/subclass/lvheadernotifications.htm


Gracias y saludos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

in header:

Código:
private:   // User declarations
          void __fastcall ListViewWindowProc(TMessage &Msg);
...


in Unit:

Código:
TWndMethod OldListViewProc = NULL;

//----------------------------------------

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

//----------------------------------------

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

        OldListViewProc(Msg);
    }
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Grandioso. Perfecto.
Era justo lo que quería

Muchísimas gracias Felip

Saludos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.