Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-04-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
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
  #2  
Antiguo 21-04-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Declará la función de este modo:
Código:
void __fastcall TForm1::MyMenuDrawItem(TObject *Sender,TCanvas *ACanvas, 
  const TRect &ARect, bool Selected)
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 22-04-2016
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Declará la función de este modo:
Código:
void __fastcall TForm1::MyMenuDrawItem(TObject *Sender,TCanvas *ACanvas, 
  const TRect &ARect, bool Selected)
Saludos
Muchas gracias. ¿Sabes que pasaba? Cómo los parámetros del evento los pone directamente Builder pues ni se me había ocurrido la posibilidad de modificarlos. ¡Seré burro!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Asignar un evento a un componente creado en tiempo de ejecucion FGarcia OOP 7 12-09-2014 23:27:35
Asignar a tbitbtn evento en tiempo de ejecucion richy08 OOP 9 09-08-2011 18:15:23
Asignar Evento OnClick en forma dinamica en tiempo de ejecucion delphi50jmb OOP 7 06-07-2008 03:46:02
Asignar evento OnDrawColumnCell en tiempo de ejecución gluglu OOP 6 01-06-2007 13:14:58
Asignar evento Oncalcfield en tiempo de ejecucion el_barto Conexión con bases de datos 5 06-09-2005 00:08:46


La franja horaria es GMT +2. Ahora son las 07:39:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi