Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema al seleccionar en un TMainMenu

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema al seleccionar en un TMainMenu Responder citando

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 Sí 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?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Puedes tentar:

Código:

...
mOpcMenu = NULL;
mOpcionLis = NULL;
delete mOpcionLis;
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias por la sugerencia.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Código:

   if(tag > 99) tag /= 10;
   tag = (tag * 10)+n;


Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.