FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ejemplo de xharbour CreateMainMenu()
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Ejemplo de xharbour CreateMainMenu()
Posted: Wed Mar 28, 2012 12:32 PM
Saludos al Forum
Como defino que los Menus tenga mas de un Nivel



Code (fw): Select all Collapse
FUNCTION CreateMainMenu()
      LOCAL oMainMenu  := TopBarMenu():new( 3, 1, 78  ) //MaxCol()
      LOCAL bMenuBlock := {|o| MenuSelect(o) }
      LOCAL cMenuColor := "N/BG,W+/R,GR+/BG,GR+/R,N+/BG,N/BG"
      LOCAL aItems

      oMainMenu:colorSpec := cMenuColor
      @0,1 say "[ ] Produccion/Facturacion" colour "w/b"
      menu_dp1()

      aItems := { ;
         { " &Open "     , K_ALT_O   , "Open routine"  , 11 }, ; //p_200() p_rr()
         { " &Save "     , K_ALT_S   , "Save routine"  , 12 }, ;
         { MENU_SEPARATOR,           ,                 , 13 }, ;
         { " E&xit "     , K_ALT_X   , "Exit program"  , 14 }  ;
      }

      CreateSubMenu( oMainMenu, " &File ", bMenuBlock, aItems )

      aItems := { ;
         { " Cop&y   "   , K_CTRL_INS, "Copy routine"  , 21 }, ;
         { " &Paste  "   , K_SH_INS  , "Paste routine" , 22 }, ;
         { MENU_SEPARATOR,           ,                 , 23 }, ;
         { " C&ut    "   , K_SH_DEL  , "Cut routine"   , 24 }, ;
         { " &Delete "   , K_DEL     , "Delete routine", 25 }  ;
      }

      CreateSubMenu( oMainMenu, " &Edit ", bMenuBlock, aItems )

      aItems := { ;
         { " &Info   "   , K_F1      , "Help routine"  , 31 }, ;
         { " &About  "   ,           , "About program" , 32 }  ;
      }

      CreateSubMenu( oMainMenu, " &Help ", bMenuBlock, aItems )

   RETURN oMainMenu


   FUNCTION CreateSubMenu( oMenu, cMenuItem, bBlock, aItems )
      LOCAL aItem, oItem, oSubMenu

      oSubMenu           := PopUp():new()
      oSubMenu:colorSpec := oMenu:colorSpec

      FOR EACH aItem IN aItems
         oItem := MenuItem():new( aItem[1], ;
                                  bBlock  , ;
                                  aItem[2], ;
                                  aItem[3], ;
                                  aitem[4]  )
         oSubMenu:addItem ( oItem )
      NEXT

      oItem := MenuItem():new( cMenuItem, oSubMenu )
      oMenu:addItem( oItem )
   RETURN


   PROCEDURE MenuSelect( oMenuItem )
    //  @ 1, 0 CLEAR TO MaxRow(), MaxCol()

      SWITCH oMenuItem:ID
      CASE 14
         ExitRoutine() ; EXIT
      DEFAULT
         Alert( oMenuItem:message )
      END
   RETURN


   PROCEDURE ExitRoutine
      IF Alert( "Desea Terminar ?", { "Si", "No" } ) == 1
        QUIT
      ENDIF
   RETURN
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Pregunta sobre este ejemplo de xharbour CreateMainMenu()
Posted: Wed Mar 28, 2012 04:24 PM

Ruben,

Es para una aplicación en Windows ó en modo "texto" (MsDos) ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Pregunta sobre este ejemplo de xharbour CreateMainMenu()
Posted: Wed Mar 28, 2012 08:46 PM

Antonio..

Para modo "texto" (MsDos)

Gracias

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Ejemplo de xharbour CreateMainMenu()
Posted: Mon Apr 16, 2012 03:47 PM

Como defino que los Menus tenga mas de un Nivel

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Ejemplo de xharbour CreateMainMenu()
Posted: Mon Apr 16, 2012 04:40 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: Ejemplo de xharbour CreateMainMenu()
Posted: Mon Apr 16, 2012 09:49 PM
Gracias Maestro.

Voy a probar , ya que el menu que tengo es modo Texto (Dos), pasando Clipper Viejo a Harbour. Veo que en FiveDos la definicion de Menues la sintaxis es igual a Fivewin.

Tengo Una Duda , tengo que volver a Reconstruir la Libreria Fivedos

Este Codigo esta en las Ayudas de x(Harbuour)
Tendria algun ejemplo de codigo cascada o niveles.

Saludos..

Code (fw): Select all Collapse
FUNCTION CreateMainMenu()
      LOCAL oMainMenu  := TopBarMenu():new( 3, 1, 78  ) //MaxCol()
      LOCAL bMenuBlock := {|o| MenuSelect(o) }
      LOCAL cMenuColor := "N/BG,W+/R,GR+/BG,GR+/R,N+/BG,N/BG"
      LOCAL aItems

      oMainMenu:colorSpec := cMenuColor
      @0,1 say "[ ] Produccion/Facturacion" colour "w/b"
      menu_dp1()

      aItems := { ;
         { " &Open "     , K_ALT_O   , "Open routine"  , 11 }, ; //p_200() p_rr()
         { " &Save "     , K_ALT_S   , "Save routine"  , 12 }, ;
         { MENU_SEPARATOR,           ,                 , 13 }, ;
         { " E&xit "     , K_ALT_X   , "Exit program"  , 14 }  ;
      }

      CreateSubMenu( oMainMenu, " &File ", bMenuBlock, aItems )

      aItems := { ;
         { " Cop&y   "   , K_CTRL_INS, "Copy routine"  , 21 }, ;
         { " &Paste  "   , K_SH_INS  , "Paste routine" , 22 }, ;
         { MENU_SEPARATOR,           ,                 , 23 }, ;
         { " C&ut    "   , K_SH_DEL  , "Cut routine"   , 24 }, ;
         { " &Delete "   , K_DEL     , "Delete routine", 25 }  ;
      }

      CreateSubMenu( oMainMenu, " &Edit ", bMenuBlock, aItems )

      aItems := { ;
         { " &Info   "   , K_F1      , "Help routine"  , 31 }, ;
         { " &About  "   ,           , "About program" , 32 }  ;
      }

      CreateSubMenu( oMainMenu, " &Help ", bMenuBlock, aItems )

   RETURN oMainMenu


   FUNCTION CreateSubMenu( oMenu, cMenuItem, bBlock, aItems )
      LOCAL aItem, oItem, oSubMenu

      oSubMenu           := PopUp():new()
      oSubMenu:colorSpec := oMenu:colorSpec

      FOR EACH aItem IN aItems
         oItem := MenuItem():new( aItem[1], ;
                                  bBlock  , ;
                                  aItem[2], ;
                                  aItem[3], ;
                                  aitem[4]  )
         oSubMenu:addItem ( oItem )
      NEXT

      oItem := MenuItem():new( cMenuItem, oSubMenu )
      oMenu:addItem( oItem )
   RETURN


   PROCEDURE MenuSelect( oMenuItem )
    //  @ 1, 0 CLEAR TO MaxRow(), MaxCol()

      SWITCH oMenuItem:ID
      CASE 14
         ExitRoutine() ; EXIT
      DEFAULT
         Alert( oMenuItem:message )
      END
   RETURN


   PROCEDURE ExitRoutine
      IF Alert( "Desea Terminar ?", { "Si", "No" } ) == 1
        QUIT
      ENDIF
   RETURN
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com

Continue the discussion