Ejemplo de xharbour CreateMainMenu()

Ejemplo de xharbour CreateMainMenu()

Postby ruben Dario » Wed Mar 28, 2012 12:32 pm

Saludos al Forum
Como defino que los Menus tenga mas de un Nivel



Code: Select all  Expand view  RUN


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

 
Last edited by ruben Dario on Mon Apr 16, 2012 3:46 pm, edited 2 times in total.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Pregunta sobre este ejemplo de xharbour CreateMainMenu()

Postby Antonio Linares » Wed Mar 28, 2012 4:24 pm

Ruben,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Pregunta sobre este ejemplo de xharbour CreateMainMenu()

Postby ruben Dario » Wed Mar 28, 2012 8:46 pm

Antonio..

Para modo "texto" (MsDos)

Gracias
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Ejemplo de xharbour CreateMainMenu()

Postby ruben Dario » Mon Apr 16, 2012 3:47 pm

Como defino que los Menus tenga mas de un Nivel
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Ejemplo de xharbour CreateMainMenu()

Postby Antonio Linares » Mon Apr 16, 2012 4:40 pm

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Ejemplo de xharbour CreateMainMenu()

Postby ruben Dario » Mon Apr 16, 2012 9: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: Select all  Expand view  RUN


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
User avatar
ruben Dario
 
Posts: 1070
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 55 guests