Página 1 de 1

MENU VERTICAL

Enviado: 11 Jun 2026 09:39
por JUDSON ROSA
Bom dia ,
mudei a versao do meu FVWIN DE 9 PARA 19 , o VMENU funcionava normal , com a mudança apresenta muitos erros , alguem passou por isso , ou existe uma nova funcao incorporada que substituiu o VMENU ???

Re: MENU VERTICAL

Enviado: 12 Jun 2026 16:27
por Kapiaba
Tarde Judson, você se refere a estes modelos?

Código: Selecionar todos

Pasta de c:\fwh1905\samples

04/01/2022  22:20             3.809 VISTAMN1.PRG
04/01/2022  14:57             4.200 VISTAMN2.PRG
Mostre algo na prática, pls.

Regards, saludos.

Re: MENU VERTICAL

Enviado: 12 Jun 2026 23:34
por rochinha
Amiguinhos,

Kapiaba o que tem de diferente neste VISTAMN2.PRG que não esta na pasta samples\graphics?

Bota o código ai, preu testar.

Re: MENU VERTICAL

Enviado: 15 Jun 2026 12:18
por Kapiaba

Código: Selecionar todos

#include "FiveWin.ch"

DEFINE WINDOW oERP FROM 4, 4 TO 25, 75 // TITLE oSis:_sistema

   MenuRibbonERP()

ACTIVATE WINDOW oERP MAXIMIZED

STATIC FUNCTION MenuRibbonERP()

   DEFINE RIBBONBAR oRBar WINDOW oERP;
      PROMPT 'Tabelas', ;
             'Custo', ;
             'Orçamento', ;
             'Vendas', ;
             'Contas a Pagar', ;
             'Contas a Receber', ;
             'Produção', ;
             'Documentos', ;
             'Contratos', ;
             'Bancos,', ;
             'Estoque' HEIGHT 140 TOPMARGIN 25

   oRBar:nLeftMargin = 01

   oRBar:CalcPos()

   ADD GROUP oGr1 RIBBON oRBar TO OPTION 1 width 1000

   @ 16, 05 ADD BUTTON oBtn11 GROUP oGr1 SIZE 80, 72 PROMPT " &Tabelas " round ;
      Action Menu_Tab_1()

   @ 16, 85 ADD BUTTON oBtn1 GROUP oGr1 SIZE 80, 72 PROMPT " &Relatório " round ;
      action nil

   @ 16, 165 ADD BUTTON oBtn13 GROUP oGr1 SIZE 80, 72 PROMPT " &Procedimento " round ;
      action Menu_Tab_3()

   @ 16, 245 ADD BUTTON oBtn15 GROUP oGr1 SIZE 80, 72 PROMPT " &Usuário " round ;
      action nil

   @ 16, 325 ADD BUTTON oBtn16 GROUP oGr1 SIZE 80, 72 PROMPT " S&enha " round ;
      action nil

   @ 16, 405 ADD BUTTON oBtn17 GROUP oGr1 SIZE 80, 72 PROMPT " &Sair " round ;
      action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr2 RIBBON oRBar TO OPTION 2 width 1000

   @ 16, 890 ADD BUTTON oBtn1 GROUP oGr2 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr3 RIBBON oRBar TO OPTION 3 width 1000

   @ 16, 890 ADD BUTTON oBtn1 GROUP oGr3 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr4 RIBBON oRBar TO OPTION 4 width 1000

   @ 16, 890 ADD BUTTON oBtn4 GROUP oGr4 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr5 RIBBON oRBar TO OPTION 5 width 1000

   @ 16, 890 ADD BUTTON oBtn5 GROUP oGr5 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr6 RIBBON oRBar TO OPTION 6 width 1000

   @ 16, 890 ADD BUTTON oBtn6 GROUP oGr6 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr7 RIBBON oRBar TO OPTION 7 width 1000

   @ 16, 890 ADD BUTTON oBtn7 GROUP oGr7 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr8 RIBBON oRBar TO OPTION 8 width 1000

   @ 16, 890 ADD BUTTON oBtn8 GROUP oGr8 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr9 RIBBON oRBar TO OPTION 9 width 1000

   @ 16, 890 ADD BUTTON oBtn9 GROUP oGr9 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr10 RIBBON oRBar TO OPTION 10 width 1000

   @ 16, 890 ADD BUTTON oBtn10 GROUP oGr10 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr11 RIBBON oRBar TO OPTION 11 width 1000

   @ 16, 890 ADD BUTTON oBtn11 GROUP oGr11 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

RETURN NIL

FUNCTION Menu_Tab_1()

   LOCAL oWnd, oVmenu, oItem, oIcon

   DEFINE WINDOW oWnd TITLE "VistaMenu"

   oVMenu := TVistaMenu():New( 100, 100, 100, 100, oERP )

   oVMenu:nColumns := 1

   oVMenu:nType := 2

   // Primeiro Menu

   oItem := oVMenu:AddItem( "Tabelas ", "" )

   oItem:AddItem( "Ramo de Atividades",, ;
      {| o | o := ERP_AA() } )

   oItem:AddItem( "Fornecedores",, ;
      {| o | o := ERP_AB() } )

   oItem:AddItem( "Clientes",, ;
      {| o | o := ERP_AC() } )

   oWnd:oClient := oVMenu

   ACTIVATE WINDOW oWnd ON INIT ( oWnd:Minimize(), oWnd:End() )

RETURN 0

FUNCTION Menu_Tab_3()

   LOCAL oWnd

   LOCAL oVmenu

   LOCAL oItem

   LOCAL oIcon

   DEFINE WINDOW oWnd TITLE "VistaMenu"

   oVMenu := TVistaMenu():New( 100, 100, 100, 100, oErp )

   oVMenu:nColumns := 1

   oVMenu:nType := 2

  // Primeiro Menu

   oItem := oVMenu:AddItem( "Procedimentos Auxiliares", "" )

   oItem:AddItem( "Cadastro de Perfil",, ;
      {| o | o := ERP_OA() } )

   oItem:AddItem( "Atualizar preço de Venda",, ;
      {| o | o := ERP_OB() } )

   oWnd:oClient := oVMenu

   ACTIVATE WINDOW oWnd ON INIT ( oWnd:Minimize(), oWnd:End() )

RETURN 0
Regards, saludos.

Re: MENU VERTICAL

Enviado: 15 Jun 2026 15:03
por alxsts
Olá!

Eu gostaria de ver esta tela com a ribbon bar.

Kapiaba: poderia postar o código acima em execução?

Pena que a HwGUI não tem este componente, pelo menos até onde sei.

Re: MENU VERTICAL

Enviado: 15 Jun 2026 18:28
por rochinha
Amiguinhos,

VISTAMNU2.PRG corrigido:

Código: Selecionar todos

#include "FiveWin.ch"
#include "ribbon.ch"

function main()
	local oVmenu
	local oItem
	local oIcon
	public oERP
	DEFINE ICON oIcon NAME "C5ICON"
	DEFINE WINDOW oERP FROM 4, 4 TO 25, 75 // TITLE oSis:_sistema
	   MenuRibbonERP()
	ACTIVATE WINDOW oERP MAXIMIZED
RETURN NIL

FUNCTION ERP_AA(); msgStop("ERP_AA"); return .T.
FUNCTION ERP_AB(); msgStop("ERP_AB"); return .T.
FUNCTION ERP_AC(); msgStop("ERP_AC"); return .T.
FUNCTION ERP_OA(); msgStop("ERP_OA"); return .T.
FUNCTION ERP_OB(); msgStop("ERP_OB"); return .T.
FUNCTION SAI_ERP(); msgStop("SAI_ERP"); quit; return .T.

STATIC FUNCTION MenuRibbonERP()

   DEFINE RIBBONBAR oRBar WINDOW oERP;
      PROMPT 'Tabelas', ;
             'Custo', ;
             'Orçamento', ;
             'Vendas', ;
             'Contas a Pagar', ;
             'Contas a Receber', ;
             'Produção', ;
             'Documentos', ;
             'Contratos', ;
             'Bancos,', ;
             'Estoque' HEIGHT 140 TOPMARGIN 25

   oRBar:nLeftMargin = 01

   oRBar:CalcPos()

   ADD GROUP oGr1 RIBBON oRBar TO OPTION 1 width 1000

   @ 16, 05 ADD BUTTON oBtn11 GROUP oGr1 SIZE 80, 72 PROMPT " &Tabelas " round ;
      Action Menu_Tab_1()

   @ 16, 85 ADD BUTTON oBtn1 GROUP oGr1 SIZE 80, 72 PROMPT " &Relatório " round ;
      action nil

   @ 16, 165 ADD BUTTON oBtn13 GROUP oGr1 SIZE 80, 72 PROMPT " &Procedimento " round ;
      action Menu_Tab_3()

   @ 16, 245 ADD BUTTON oBtn15 GROUP oGr1 SIZE 80, 72 PROMPT " &Usuário " round ;
      action nil

   @ 16, 325 ADD BUTTON oBtn16 GROUP oGr1 SIZE 80, 72 PROMPT " S&enha " round ;
      action nil

   @ 16, 405 ADD BUTTON oBtn17 GROUP oGr1 SIZE 80, 72 PROMPT " &Sair " round ;
      action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr2 RIBBON oRBar TO OPTION 2 width 1000

   @ 16, 890 ADD BUTTON oBtn1 GROUP oGr2 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr3 RIBBON oRBar TO OPTION 3 width 1000

   @ 16, 890 ADD BUTTON oBtn1 GROUP oGr3 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr4 RIBBON oRBar TO OPTION 4 width 1000

   @ 16, 890 ADD BUTTON oBtn4 GROUP oGr4 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr5 RIBBON oRBar TO OPTION 5 width 1000

   @ 16, 890 ADD BUTTON oBtn5 GROUP oGr5 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr6 RIBBON oRBar TO OPTION 6 width 1000

   @ 16, 890 ADD BUTTON oBtn6 GROUP oGr6 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr7 RIBBON oRBar TO OPTION 7 width 1000

   @ 16, 890 ADD BUTTON oBtn7 GROUP oGr7 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr8 RIBBON oRBar TO OPTION 8 width 1000

   @ 16, 890 ADD BUTTON oBtn8 GROUP oGr8 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr9 RIBBON oRBar TO OPTION 9 width 1000

   @ 16, 890 ADD BUTTON oBtn9 GROUP oGr9 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr10 RIBBON oRBar TO OPTION 10 width 1000

   @ 16, 890 ADD BUTTON oBtn10 GROUP oGr10 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

   ADD GROUP oGr11 RIBBON oRBar TO OPTION 11 width 1000

   @ 16, 890 ADD BUTTON oBtn11 GROUP oGr11 SIZE 80, 72 PROMPT " Sair " action sai_ERP() BITMAP "LOGOUT"

RETURN NIL

FUNCTION Menu_Tab_1()

   LOCAL oWnd, oVmenu, oItem, oIcon

   DEFINE WINDOW oWnd TITLE "VistaMenu"

   oVMenu := TVistaMenu():New( 100, 100, 100, 100, oERP )

   oVMenu:nColumns := 1

   oVMenu:nType := 2

   // Primeiro Menu

   oItem := oVMenu:AddItem( "Tabelas ", "" )

   oItem:AddItem( "Ramo de Atividades",, ;
      {| o | o := ERP_AA() } )

   oItem:AddItem( "Fornecedores",, ;
      {| o | o := ERP_AB() } )

   oItem:AddItem( "Clientes",, ;
      {| o | o := ERP_AC() } )

   oWnd:oClient := oVMenu

   ACTIVATE WINDOW oWnd ON INIT ( oWnd:Minimize(), oWnd:End() )

RETURN 0

FUNCTION Menu_Tab_3()

   LOCAL oWnd

   LOCAL oVmenu

   LOCAL oItem

   LOCAL oIcon

   DEFINE WINDOW oWnd TITLE "VistaMenu"

   oVMenu := TVistaMenu():New( 100, 100, 100, 100, oErp )

   oVMenu:nColumns := 1

   oVMenu:nType := 2

  // Primeiro Menu

   oItem := oVMenu:AddItem( "Procedimentos Auxiliares", "" )

   oItem:AddItem( "Cadastro de Perfil",, ;
      {| o | o := ERP_OA() } )

   oItem:AddItem( "Atualizar preço de Venda",, ;
      {| o | o := ERP_OB() } )

   oWnd:oClient := oVMenu

   ACTIVATE WINDOW oWnd ON INIT ( oWnd:Minimize(), oWnd:End() )

RETURN 0
Vale salientear que se trata de um teste de demonstração de interface de menus. Dois padrões bem distintos.
Um no qual nos acostumamos a ver no Windows Vista e a Ribbon Bar nos aplicativos Office.

Acho o estilo vista muito espaçoso na tela, de certa forma poluindo o visual.

A Ribbon Bar, se bem construída tornará o acesso a funções de um aplicativo mais completo, direto e intuitivo sem abertura de menus e submenus infinitos.

Imagem

Re: MENU VERTICAL

Enviado: 15 Jun 2026 18:35
por alxsts
Olá!

Acho que me expressei mal...

O código em execução a que me referi é um Print screen da tela do executável rodando, mostrando a ribbon bar. O código fonte já havia sido postado anteriormente.

Re: MENU VERTICAL

Enviado: 15 Jun 2026 20:59
por alxsts
Olá!

Muito bonito. Gostei.

Obrigado Rochinha!

EDIT:
Comparando os elementos exibidos na tela com aqueles definidos no código fonte apresentado, não vi nenhuma correspondência.

Este código fonte parece que não é o que gera a tela ou então está incompleto.

Poderia esclarecer?

Grato