Problema al seleccionar en un TMainMenu
A ver si soy capaz de explicarme. Estoy trabajando con BCB 6 y tengo un TMainMenu con unas opciones que van al mismo evento OnCLick ya que las cuatro posibilidades son para generar un listado con diferentes opciones; en la definición del TMainMenu cada una de ellas tiene asignado un valor para Tag: 11, 12, 21 y 22.
Al entrar en el evento tengo puesto esto: Código:
TMenuItem *mOpcionLis = new TMenuItem(this); El problema lo tengo si el usuario selecciona luego cualquiera de las opciones otra vez. En ese caso mOpcLis->Tag se queda con el valor calculado antes; es decir: vale, para el ejemplo, 110 y tras ejecutar otra vez esa última línea pasaría a valer, por ejemplo 1100 y por lo tanto los listados ya no hacen lo que deben. He probado haciendo delete mOpcionLis al completar el listado, pero he visto que si hago eso me borra la opción del menú definido en el formulario. He probado poniendo static_cast y dinamic_cast o haciendo mOpcionLis->Tag = 0 al terminar, pero da lo mismo. ¿ALguna idea? |
Hola.
Sinceramente no comprendí a fondo como es la situación pero si en algún punto alteras el valor de la propiedad Tag y luego deseas recuperarlo, tendrás que salvarlo antes. Por ejemplo: Código PHP:
|
Gracias por tu respuesta ecfisa. Ya sabía yo que iba a ser difícil entender la pregunta. Lo cierto es que algo similar a eso lo he intentado.
Código:
void __fastcall TfPersona::RecLisClick(TObject *Sender) Otra de las cosas que he probado es, dado que cuando se entra en el evento hay un new TMenuItem, borrar (delete mOpcionLis) el objeto, pero me he encontrado que haciendo eso me borra también la opción que está definida en el formulario. |
Hola.
No entiendo cual es el motivo de crear una instancia de TMenuItem en el evento RecLisClick ¿ es para resguardar el objeto original ? Por que cuando haces, Código PHP:
Un ejemplo de lo que me refiero: Código PHP:
Código PHP:
Código PHP:
Código PHP:
Pero, como ya te comenté, no sé si entiendo bien la funcionalidad de tu código y la problemática que te está acarreando. Saludos :) |
Cita:
|
La franja horaria es GMT +2. Ahora son las 10:47:19. |
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