![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Fijar columnas en un TListView
¿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?
|
|
#2
|
||||
|
||||
|
Hola Angel.Matilla.
.h Código:
...
class TForm1 : public TForm
{
...
private:
void __fastcall ListViewWindowProc(TMessage &Msg);
...
Código:
...
TWndMethod OldListViewProc;
__fastcall TForm1::TForm1(TComponent *Owner) : TForm(Owner)
{
OldListViewProc = ListView1->WindowProc;
ListView1->WindowProc = ListViewWindowProc;
}
void __fastcall TForm1::ListViewWindowProc(TMessage &Message)
{
if (Message.Msg == WM_NOTIFY) {
const NMHDR *phdr = (NMHDR*)Message.LParam;
if((phdr->code == HDN_BEGINTRACKA) ||
(phdr->code == HDN_BEGINTRACKW) ||
(phdr->code == HDN_DIVIDERDBLCLICKA) ||
(phdr->code == HDN_DIVIDERDBLCLICKW)) {
Message.Result = TRUE;
return;
}
}
OldListViewProc(Message);
}
...
![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#3
|
||||
|
||||
|
Muchas garcias ecfisa. Funciona a la perfección salvo que me da un mensaje de error 'Cannot make a visible window modal', y eso sí que no sé como resolverlo. Estoy usando este código:
Código:
void __fastcall TfColegio::Button1Click(TObject *Sender)
{
AnsiString cAux;
Query->Close();
Query->SQL->Text = "SELECT Formacion, Registro FROM Formacion ORDER BY Formacion";
Query->Open();
Application->CreateForm(__classid(TfAyuda), &fAyuda);
for (; !Query->Eof; Query->Next())
{
pItem = fAyuda->Ayuda->Items->Add();
pItem->Caption = Query->FieldByName("Formacion")->AsString;
pItem->SubItems->Add("");
pItem->SubItems->Add(Query->FieldByName("Registro")->AsInteger);
}
pItem = NULL;
fAyuda->Refresh();
fAyuda->ShowModal();
delete fAyuda;
}
//---------------------------------------------------------------------------
Código:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Ayuda.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfAyuda *fAyuda;
TWndMethod OldListViewProc;
//---------------------------------------------------------------------------
__fastcall TfAyuda::TfAyuda(TComponent* Owner)
: TForm(Owner)
{
OldListViewProc = Lista->WindowProc;
Lista->WindowProc = ListViewWindowProc;
}
//---------------------------------------------------------------------------
void __fastcall TfAyuda::ListViewWindowProc(TMessage &Message)
{
if (Message.Msg == WM_NOTIFY)
{
const NMHDR *phdr = (NMHDR*)Message.LParam;
if ((phdr->code == HDN_BEGINTRACKA) || (phdr->code == HDN_BEGINTRACKW) ||
(phdr->code == HDN_DIVIDERDBLCLICKA) || (phdr->code == HDN_DIVIDERDBLCLICKW))
{
Message.Result = TRUE;
return;
}
}
OldListViewProc(Message);
}
//---------------------------------------------------------------------------
Última edición por Angel.Matilla fecha: 05-11-2013 a las 17:47:28. |
|
#4
|
||||
|
||||
|
Hola Angel.Matilla.
Pero ese error no tiene que ver con el código para evitar el redimensionado de las columnas del ListView. Se produce por que estas intentando mostrar el form "fAyuda" de forma modal, teniendo este último la propiedad Visible igual a True. Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 05-11-2013 a las 21:56:26. |
|
#5
|
||||
|
||||
|
Gracias por contestar. No acabo de entender esto que me dices de que la propiedad Visible es true; ¿la del form?. Además he probado con ShowModal() y con Show() y en ambos casos me da error
|
|
#6
|
||||
|
||||
|
Hola.
Si, me refiero a la propiedad visible del form, eso indica el error que estas mencionando. Te adjunto un ejemplo en el cuál podes cambiar la propiedad Visible del form antes de mostrarlo mediante un TCheckBox. Podrás ver que se muestra correctamente de forma modal cuando la propiedad Checked del CheckBox tiene valor false y provoca una excepción de modo contrario. Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Bloquear columnas TListView | yomismo24 | Varios | 2 | 17-09-2008 19:24:58 |
| Columnas de un TListView | PTW | Varios | 1 | 27-06-2005 17:19:43 |
| Fijar las toolbars | ibstk | Varios | 4 | 09-02-2005 03:37:49 |
| Fijar columnas en un DBGRID | negama | Conexión con bases de datos | 0 | 29-09-2003 20:02:25 |
| Fijar Bandas | noir | Impresión | 2 | 15-05-2003 17:38:28 |
|