Sugestão pra menu

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sugestão pra menu

Mensagem por JoséQuintas »

Tô precisando de uma sugestão....

Tava olhando o menu Windows....
menuw.png
Qual a diferença de um menu console?
À primeira vista, só pocisionamento e cores.
menuc.png
Então alterei esta linha:

Código: Selecionar todos

            BoxMenu( mLini + iif( Empty( mTitulo ), 0, 1 ) + mOpc, mColi + iif( mColi < ( MaxCol() - 80 ), 40, -40 ), mMenuOpt[ mOpc, 2 ], @mMenuOpt[ mOpc, 5 ], mMenuOpt[ mOpc, 1 ], .T., .T., aMouseConv, nLevel + 1 )
Mas fica esquisito, porque deixa duvidoso o foco atual.
menu2.png
A sugestão é sobre como poderia dar destaque ao atual, que pode ser movido pelas setas.

Nota:
Meu clique já funciona em qualquer lugar de qualquer menu, então mostrar completo acaba sendo até mais interessante.
Mesmo assim, fica pendente o menu voltando, e até setas para os lados nesses subníveis.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sugestão pra menu

Mensagem por JoséQuintas »

Uia que interessante...

Mas agora tive que acrescentar o parâmetro de direção

Código: Selecionar todos

STATIC FUNCTION BoxMenu( mLini, mColi, mMenuOpt, mOpc, mTitulo, mSaiSetas, mSaiFunc, aMouseConv, nLevel, nDirecao )
e analisar conforme direção

Código: Selecionar todos

            IF nDirecao == 1
               IF mColi > MaxCol() - 80
                  nDirecao := -1
               ENDIF
            ELSE
               IF mColi < 40
                  nDirecao := 1
               ENDIF
            ENDIF
            BoxMenu( mLini + iif( Empty( mTitulo ), 0, 1 ) + mOpc, mColi + ( nDirecao * 40 ), mMenuOpt[ mOpc, 2 ], @mMenuOpt[ mOpc, 5 ], mMenuOpt[ mOpc, 1 ], .T., .T., aMouseConv, nLevel + 1, nDirecao )
Só reforçando:
Não está sendo mostrado à toa, o usuário pode clicar em qualquer lugar que funciona.
Não tenho tanto nível assim, apenas estou testando se está funcionando.
Anexos
niveis.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sugestão pra menu

Mensagem por JoséQuintas »

E o fonte do menu é o de sempre, um único array.

Código: Selecionar todos

      MenuOption( "Testes" )
         MenuDrop()
         MenuOption( "Testes SPED" )
            MenuDrop()
            MenuOption( "Validar XML",             "PTESVALIDAXML" )
            MenuUnDrop()
         MenuOption( "Testes JPA" )
            MenuDrop()
            MenuOption( "Clientes Excel por regiao",      "PTESTREGIAO" )
            MenuOption( "Teste Filtro",                   "PTESFILTRO" )
            MenuOption( "Windows Style",                  "PTESWIN" )
            MenuOption( "SQL Backup",                     "ZE_SQLBACKUP" )
            MenuOption( "SQL Exportar para SQL",          "SQLFROMDBF" )
            MenuOption( "Comparar bases SQL",             "PTESBASE" )
            MenuOption( "Checking QueryCreate()",         "PTESQUERYC" )
            MenuOption( "Consultar CEPs",                 "PTESCEP" )
            MenuOption( "Alert WVG",                      "PALERT" )
            MenuOption( "Test niveis 1" )
               MenUDrop()
                  MenuOption( "Test niveis 2" )
                  MenuDrop()
                     MenuOption( "Test niveis 3" )
                     MenuDrop()
                        MenuOption( "test niveis 4", "XX" )
                     MenuUnDrop()
                  MenuUnDrop()
               MenuUnDrop()
            MenuUnDrop()
         MenuOption( "Testes Aplicativo" )
            MenuDrop()
            MenuOption( "Manual Imprimir",              "ZE_HELPPRINT" )
            MenuOption( "Retorna preços diferenciados", "PPRECANCEL" )
            MenuUnDrop()
         MenuUnDrop()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sugestão pra menu

Mensagem por JoséQuintas »

o menu em ação

José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lwinter
Usuário Nível 3
Usuário Nível 3
Mensagens: 123
Registrado em: 07 Mar 2011 12:08
Localização: Campinas - SP

Sugestão pra menu

Mensagem por lwinter »

Nao sei se eu entedi direito o que voce quer.
Mas a melhor forma de nao confundir o usuario é padronizar.
Eu padronizei os submenus sempre abrirem a direita, com excecao se nao couber na tela que dai retorna abaixo.
Acho tambem que testar com mais niveis do que voce ira utilizar ao usuario fara voce desfocar e perder tempo.
Eu acho que 3 niveis no maximo 4 esta de bom tamanho.
Vou trabalhar numa tecla de pesquisa/busca para menus com autocomplete. Desta forma o usuario podera pesquisar de forma bem rapida, inclusive utilizando apelidos (caso tenha). Nesta pesquisa o sistema ira mostrar primeiro os 5 ultimos menus utilizados (por usuario no que chamei de perfil do aspecto). Desta forma havera uma pilha dos ultimos 30 itens de menus utilizados, dai ordeno pela qtde de ocorrencia + pultima data utilizada, e pego os cinco primeiros da pilha. Depois faco uma uniao com os itens de menu. Ficaria parecido com os "mais recentes" do windows.
lwinter
Usuário Nível 3
Usuário Nível 3
Mensagens: 123
Registrado em: 07 Mar 2011 12:08
Localização: Campinas - SP

Sugestão pra menu

Mensagem por lwinter »

Quando me referi a 3 ou 4 niveis, estou falando apenas de popup, sem considerar o menu principal/pulldown (nivel 0).
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Sugestão pra menu

Mensagem por JoséQuintas »

Tava pensando em deixar o conjunto de menu atual, onde funcionam as setas, em destaque.
Mas acho que só vai complicar, sem vantagem útil.

Sobre a montagem: Do jeito que fiz vai pra frente enquanto cabe, a partir daí, vai pra trás enquanto cabe.

Muitas opções no menu, nem são usadas, porque servem apenas pra definir se o usuário pode acessar.
Acaba usando uma subopção da tela aonde está.

Mas já mudei isso pra secundário.
É que pensando bem, vou criar menus em quase todas as telas, com assuntos relacionados.
Button até deixa de ser opção, porque seria button demais.

Melhor deixar a "revolução" disso tudo pra depois.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lwinter
Usuário Nível 3
Usuário Nível 3
Mensagens: 123
Registrado em: 07 Mar 2011 12:08
Localização: Campinas - SP

Sugestão pra menu

Mensagem por lwinter »

Essa pratica de deixar menus com assuntos relacionados é bem interessante. Fica mais intuitivo. Quanto maior o menu mais sentido faz este uso de assuntos relacionados. Senao fica dificil encontrar o que se deseja.
HOje vejo o agrupamentos de assuntos relacionados tambem em menus de configuracoes. Antes tinhamos uma unica tela de configuracoes para o sistema todo. Hoje vejo menus de configuracoes especificos para cada tela. Esta se tornando uma tendencia.
Responder