Ver Mensaje Individual
  #3  
Antiguo 05-11-2013
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Ubicación: Toledo - España
Posts: 1.418
Reputación: 21
Angel.Matilla Va por buen camino
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;
}
//---------------------------------------------------------------------------
Y es en ese fAyuda es donde he puesto el código que me indicas:
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.
Responder Con Cita