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 

Asignación de PopupMenu en tiempo de ejecución??

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Asignación de PopupMenu en tiempo de ejecución?? Responder citando

Saludos, a ver si vosotros me podeis echar una mano pues estoy algo perdido con lo que intento hacer (espero que se pueda).

Tengo varios PopupMenu en mi proyecto (PopupMenu1, PopupMenu2, PopupMenu3), asignados a un StringGrid, de modo que cuando se hace click derecho sobre una celda del StringGrid, sale el PopupMenu.

Lo que me gustaría es por ejemplo, poder asignarle al StringGrid un PopupMenu distinto, por ejemplo:

Si hago click en un botón, que le asigne al StringGrid el PopupMenu1;
Si hago click en otro botón, que le asigne al StringGrid el PopupMenu2;
Y por último, si hago click en un tercer botón, que le asigne al StringGrid el PopupMenu3;

Lo he intentado con

Código:
Form1->StringGrid1->PopupMenu->Name = PopupMenu1;


Es así??

Aparte, cómo se hace para insertar el Caption del ítem que se selecciona?

Si lo intento así

Código:
Form1->StringGrid1->Cells[x][y] = PopupMenu1->Items[0];


Me dice que no puede convertir un TMenuItems a AnsiString.

Alguna sugerencia o idea??

Gracias!!
_________________
Saludos, Alpha.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Prueba asi:

Código:
Form1->StringGrid1->PopupMenu = PopupMenu1;


Saludos!
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Buildero. Se te ocurre algo para la otra pregunta???
_________________
Saludos, Alpha.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Alpha120 escribió:
Gracias Buildero. Se te ocurre algo para la otra pregunta???


Ok, en ese caso prueba con:

Código:
Form1->StringGrid1->Cells[x][y] = PopupMenu1->Items->Items[0]->Caption;


Con esto asignas el Caption del primer elemento del Popup.

Saludos!
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Buildero!!!

Una última pregunta.

Y si tengo por ejemplo un ComboBox con los números 1 a 5 y otros tantos PopupMenu??
Y cada vez que seleccione un número del ComboBox quiero asignar al mismo StringGrid un PopupMenu distinto?

No podría hacerlo con:

Código:
Form1->StringGrid1->PopupMenu = "PopupMenu" + Form1->ComboBox1->Text


Por que entonces me dice que no puede convertir AnsiString en PopupMenu o algo así.

Cómo lo puedo hacer? (si se puede, claro).

Muchas gracias por todo!!!!
_________________
Saludos, Alpha.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Que tal Alpha.

No, no se puede hacer como lo intentas.

Utiliza el evento OnSelect del ComboBox y allí indica el Popup que te interese dependiendo del elemento seleccionado en el combo.

Ejemplo:

Código:
void __fastcall TForm1::ComboBox1Select(TObject *Sender)
{
    switch ( ComboBox1->Text.ToInt() )
    {
        case 1:
            Form1->StringGrid1->PopupMenu = PopupMenu1;
            break;

        case 2:
            Form1->StringGrid1->PopupMenu = PopupMenu2;
            break;

        case 3:
            Form1->StringGrid1->PopupMenu = PopupMenu3;
            break;

        case 4:
            Form1->StringGrid1->PopupMenu = PopupMenu4;
            break;

        case 5:
            Form1->StringGrid1->PopupMenu = PopupMenu5;
            break;
    }
}


Saludos!
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hmm, pues nada, a hacerlo con switch, me lo temía... :-\

Gracias por tu ayuda!!
_________________
Saludos, Alpha.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
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.