Page 1 of 1

Como redefino ButtonBar en la ejecuciòn

PostPosted: Mon Apr 06, 2009 1:14 pm
by fespinoza
Hola amigos

Tengo el siguiente problema:

Primero, antes de crear mi ventana principal, defino un memu popup para una de las opciones de mi ButtonBar, asì:

Code: Select all  Expand view
MENU oPopET POPUP 2007
   MENUITEM "Tabla &General" ACTION (oDlg:Hide(), ElbrFech(1,1), oDlg:Show()) MESSAGE "Elabora tabla de posiciones global del Campeonato"
   MENUITEM "Tabla &Local" ACTION (oDlg:Hide(), ElbrFech(2,1), oDlg:Show()) MESSAGE "Elabora tabla de posiciones como local de cada equipo del Campeonato"
   MENUITEM "Tabla &Visitante" ACTION (oDlg:Hide(), ElbrFech(3,1), oDlg:Show()) MESSAGE "Elabora tabla de posiciones como visitante de cada equipo del Campeonato"
   SEPARATOR
   MENUITEM ETPS[1] ACTION (oDlg:Hide(), ElbrEtpa(1), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[2] ACTION (oDlg:Hide(), ElbrEtpa(2), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[3] ACTION (oDlg:Hide(), ELBRETPA(3), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[4] ACTION (oDlg:Hide(), ELBRETPA(4), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[5] ACTION (oDlg:Hide(), ELBRETPA(5), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[6] ACTION (oDlg:Hide(), ELBRETPA(6), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[7] ACTION (oDlg:Hide(), ELBRETPA(7), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[8] ACTION (oDlg:Hide(), ELBRETPA(8), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[9] ACTION (oDlg:Hide(), ELBRETPA(9), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[10] ACTION (oDlg:Hide(), ELBRETPA(10), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[11] ACTION (oDlg:Hide(), ELBRETPA(11), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[12] ACTION (oDlg:Hide(), ELBRETPA(12), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[13] ACTION (oDlg:Hide(), ELBRETPA(13), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[14] ACTION (oDlg:Hide(), ELBRETPA(14), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada"
   MENUITEM ETPS[15] ACTION (oDlg:Hide(), ELBRETPA(15), oDlg:Show()) MESSAGE "Elabora tabla de posiciones de la etapa seleccionada" CHECK
ENDMENU


Luego defino la ventana principal y llamo al memu de la siguiente forma:

Code: Select all  Expand view

DEFINE WINDOW oVent TITLE "SicefWin Versión 3.0" BRUSH oBrush ICON oApp:cIcono MENU Menu_H()
...
    DEFINE BUTTONBAR oBarra 3DLOOK SIZE 30,32 TOP OF oVent CURSOR oCursor
    DEFINE BUTTON oBtn[3] OF oBarra RESOURCE "TABLA" ACTION (oDlg:Hide(), ElbrEtpa(nNumEtp), oDlg:Show()) NOBORDER TOOLTIP "Elabora tablas de Posiciones" MESSAGE "Elabora tablas de Posiciones" MENU oPopET
...
ACTIVATE WINDOW oVent MAXIMIZED VALID MsgYesNo("¿Desea terminar?","Elija opción SI/NO") ON INIT IF(lBien, Bienvenido(), ) ;
    ON PAINT ( SayRotated(oVent, oVent:nVertRes()-165, oVent:nHorzRes()-72, "SicefWin 3.0", oFont3, CLR_RED, CLR_WHITE, .T.), ;
                  SayRotated(oVent, oVent:nVertRes()-165, oVent:nHorzRes()-25, "Todo sobre el fútbol Ecuatoriano", oFont4, CLR_BLUE, CLR_WHITE, .T.) )
 


El problema es que quiero modificar el contenido del menu oPopET durante la ejecuciòn del programa (reduzco las opciones y cambio el contenido de los MENUITEM); he probado con OVent:Update() y OBarra:Reload(), pero no me funciona, la definiciòn inicial del menu se mantiene ante cualquiera de mis intentos.

Alguna sugerencia., de que otra forma se puede hacer

Saludos desde Ecuador

Fernando Espinoza

Re: Como redefino ButtonBar en la ejecuciòn

PostPosted: Wed Apr 08, 2009 1:37 am
by fespinoza
Uff, dos días y ningún samaritano; por favor alguien que le de una ojeada a esto.

Saludos

Fernando Espinoza

Re: Como redefino ButtonBar en la ejecuciòn

PostPosted: Wed Apr 08, 2009 7:50 am
by Ricardo Ramirez E.
Fernando :
Has probado llamando a

METHOD Refresh() INLINE ::oWnd:SetMenu( Self ) // TMenu.

Lo puse asi de propósito, para que veas a que invocarias cuando indiques oPopET:Refresh()