| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Ciklon Cdt

Registrado: 27 Nov 2002Mensajes: 22Ubicación: Argentina
|
Publicado: Vie 25 Jun, 2004 3:45 pm Asunto: Referenciar Item de PopUpMenu |
|
|
Como referencio uno de los objetos de un popup menu para asi obtener el caption de este?
Gracias. |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Vie 25 Jun, 2004 4:44 pm Asunto: |
|
|
Todos los objetos que tu colocas en un PopupMenu son Objetos del tipo TMenuItem, asi que cada vez que agregas uno, en la declaracion de la forma se te agrega un objeto de esos...
Ej:
| Código: |
__published:
TMenuItem *Opcion1;
TMenuItem *Opcion2;
|
Entonces lo quet endrias que hacer es llamar cada uno de esos objetos como si fuesen objetos independientes, de hecho lo son, solo que estan ligados al PopUp Menu...
Saludos! _________________ Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!! |
|
| Volver arriba |
|
 |
Ciklon Cdt

Registrado: 27 Nov 2002Mensajes: 22Ubicación: Argentina
|
Publicado: Vie 25 Jun, 2004 4:50 pm Asunto: referenciar items de un menu item |
|
|
Podrias darme un ejemplo?
Gracias |
|
| Volver arriba |
|
 |
alfredo Master

Registrado: 13 Oct 2003Mensajes: 246Ubicación: Valencia Venezuela
|
Publicado: Vie 25 Jun, 2004 9:01 pm Asunto: |
|
|
Como dice LordNemesis puedes acceder a cualquier item ya sea de menu o popup el siguente codigo muestra como recorrer todos los MenuItems de
un Form y copiar sus Captions a un Memo. | Código: | TMenuItem *MiItem;
for(int i=0;i<this->ComponentCount;i++)
{
if (this->Components[i]->ClassNameIs("TMenuItem"))
{
MiItem= (TMenuItem *)this->Components[i];
Memo1->Lines->Add(MiItem->Caption);
}
} |
Como me barrunto que el interes en acceder al caption de un MenuItem
debe tener algo que ver con utilizarlo en tiempo de ejecucion te recomendaria que utilizaras la propiedad Hint en vez del Caption, ya que
esta ultima puede tener un ampersand (&) y para ahorrarte un trecho del
camino te pongo un trozo de codigo que lanza una consulta dependiendo
del valor almacenado en el hint, los menuitems se generan a runtime y
se ignora que valores tienen sus hints respectivos.
Primero creamos un manejador unico para todos los hints, la forma
mas practica es poner un button en el form ponernos en la propiedad
OnClick y escribir el nombre que deseemos para el evento, en este caso
MiClick, dar enter y escribir el codigo siguente: | Código: |
TMenuItem*MiItem= dynamic_cast<TMenuItem*>(Sender);
Query->SQL->Clear();
Query->SQL->Add("Select * From Tabla Where Campo='"+MiItem->Hint+"'");
Query->Open();
|
Para que esto funcione en el evento donde se creen los MenuItems se les debe asignar el antes dicho evento:
| Código: |
MenuItem->OnClick=MiClick; |
|
|
| Volver arriba |
|
 |
|