Ver Mensaje Individual
  #1  
Antiguo 09-11-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
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);
mOpcionLis = static_cast<TMenuItem *>(Sender);
mOpcMenu = mOpcionLis;

mOpcMenu->Tag = 10 * mOpcionLis->Tag + 2 - Mensaje(2, "¿Desea diferenciar situaciones?", "Sí\nNo");
mOpcMenu es un TMenuItem y Mensaje es una fución definida por mi como una mejora de un MessageDlg. Si por ejemplo selecciono la primera de las cuatro posibles opciones y al ejecutarse esa última línea si contesto con un a la pregunta el valor de mOpcMenu->Tag será 110 y a partir de aquí genero el listado que me interesa.

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?
Responder Con Cita