Ver Mensaje Individual
  #1  
Antiguo 21-04-2016
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
Asignar evento en tiempo de ejecución en TMainMenu

Continuando con el tema del TMainMenu se me está presentando otro problema que no sé como abordar. En un formulario tengo un TMainMenu que construyo en tiempo de ejecución en función de los resultados de unas querys. Estoy usando este código:
Código PHP:
TMenuItem *mItem0 = new TMenuItem(this);
TMenuItem *mItem1 = new TMenuItem(this);

for (
nItem 0nItem Menu->Items->CountnItem ++)
     switch (
nItem)
     {
          case 
6:
               
fPersona->Auxiliar->Close();
               
fPersona->Auxiliar->SQL->Text "SELECT COUNT(*) Hay FROM Persona WHERE Situacion IN (SELECT Valor FROM Instalacion WHERE Etiqueta = 'Situacion' AND Situacion = 1) AND N_afiliado = 0";
               
fPersona->Auxiliar->Open();
               if (
fPersona->Auxiliar->FieldByName("Hay")->AsInteger 0)
               {
                    
mItem0 Menu->Items->Items[nItem];
                    
mItem0->OnClick NULL;

                    
mItem1 = new TMenuItem(mItem0);
                    
mItem0->Add(mItem1);
                    
mItem1->Caption "Sin número de afiliado";
                    
mItem1->Tag     61;
                    
mItem1->OnClick JlocalClick;
                    
mItem1->OnDrawItem JlocalDrawItem;

                    
mItem1 = new TMenuItem(mItem0);
                    
mItem0->Add(mItem1);
                    
mItem1->Caption "Todas";
                    
mItem1->Tag     62;
                    
mItem1->OnClick JlocalClick;
                    
mItem1->OnDrawItem JlocalDrawItem;
               }
               break;
          case 
7:
               break;
          case 
8:
               break;

Hay otras opciones del menú que son fijas siempre y en las que tengo definido en tiempo de diseño el mismo evento JlocalDrawItem. Sin embargo, tal como tengo puesto el código al compilar me este error:
Cita:
E2034 Cannot convert 'void (_fastcall* (_closure)(T0bject*,TCanvas *,TRect&,bool))(T0bject*,TCanvas_*,TRect&,bool)' to 'void (_fastcall* (_closure)(T0bject*,TCanvas *,const TRect&,bool))(T0bject*,TCanvas *,const TRect&,bool)'
He mirado la ayuda para ese error pero no me resuelve ninguna duda y ya no sé por dónde coger para solucionarlo.
Responder Con Cita