Dúvida sobre menu de opções em Minigui

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Dúvida sobre menu de opções em Minigui

Mensagem por Paulo_CPV »

Boa noite!

Gostaria dos amigos se é possível fazer um menu de opções sem utilizar os controles de menus que veem com o Minigui Extend. Pois estou necessitando fazer um menu de opções fora do padrão. Será que alguém pode me auxiliar ou tem um exemplo para estudo.

Ah! Outra dúvida estou utilizando o comando DRAW GRADIENT... como eu faço os controles aparecerem por cima do controle DRAW, alguém tem uma sugestão para este problema?

Desde já agradeço a atenção dos amigos do grupo que tanto ajudam a resolver dúvidas que a gente tem.

[]'s
Paulo - Jacareí/SP
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Dúvida sobre menu de opções em Minigui

Mensagem por Toledo »

Paulo_CPV escreveu:Pois estou necessitando fazer um menu de opções fora do padrão
A única maneira que eu conheço de fazer um menu na MiniGui é utilizando DEFINE MAIN MENU, POPUP, MENUITEM, etc...
Paulo_CPV escreveu:como eu faço os controles aparecerem por cima do controle DRAW
Coloque o código dos controles depois da linha de código do DRAW.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Dúvida sobre menu de opções em Minigui

Mensagem por Paulo_CPV »

Boa noite!

Toledo fiz as modificações que você me meu, mais continua o controle DRAW GRADIENT sobrepondo os outros controles da janela.Será que tem solução?

[]'s
Paulo - Jacareí/SP
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Dúvida sobre menu de opções em Minigui

Mensagem por Nascimento »

fora do padrão em que sentido amigo pode ser mais claro?
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Dúvida sobre menu de opções em Minigui

Mensagem por Toledo »

Paulo_CPV escreveu:mais continua o controle DRAW GRADIENT sobrepondo os outros controles da janela.
Segue um exemplo:

Código: Selecionar todos

#include "minigui.ch"

PROCEDURE Main ()

        DEFINE WINDOW Form_main ;
                AT 0,0 ;
                WIDTH 620 ;
                HEIGHT 420 ;
                TITLE "Draw Gradient" ;
                MAIN  NOMAXIMIZE NOSIZE ;
                ON RELEASE ExitGradientFunc()

                DRAW GRADIENT IN WINDOW Form_main AT 20,20 TO 370,600 ;
                          VERTICAL BORDER 2 ;
                          BEGINCOLOR {70,130,180} ;
                          ENDCOLOR {176,196,222}  

                @ 50, 110 LABEL Label_1 VALUE "DraW Gradient" AUTOSIZE ;
                          FONT "Arial" SIZE 16 BOLD TRANSPARENT 

                @ 150, 50 TEXTBOX Text_1 ;
                          HEIGHT 30 ;
                          WIDTH	100 ;
                          MAXLENGTH 10

                @ 330, 240 BUTTON Button_1 ;
                          CAPTION "&Sair" ;
                          ACTION ThisWindow.Release ;
                          WIDTH 150 HEIGHT 26 DEFAULT

        END WINDOW

        Center Window Form_main

        Activate Window Form_main

Return
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Dúvida sobre menu de opções em Minigui

Mensagem por Paulo_CPV »

Boa noite!

Caro Toledo, fiz um teste com o seu exemplo e deu certo, mais ainda na minha aplicação não está dando certo. Será que tem haver: Quando a aplicação é iniciada mostra uma tela de Login, se eu clico no botão 'Entrar no Sistema', ele fecha a janela de Login e vai para a janela principal.

Código: Selecionar todos

DEFINE WINDOW JanelaPrincipal ;
AT 0,0 WIDTH 1024 HEIGHT 768 ;
TITLE 'Controle de Clientes' ;
MAIN TOPMOST NOSIZE NOSYSMENU  NOCAPTION ;
ON INIT { || Login() }
...
END WINDOW
ACTIVATE WINDOW JanelaPrincipal

FUNCTION LOGIN()

   DEFINE WINDOW JanelaLogin ;
      AT 278 , 252 WIDTH 468 HEIGHT 200 ;
      TITLE 'Acesso ao Sistema' ;
      MODAL ;
      NOSIZE ;
      NOSYSMENU ;
      NOCAPTION ;
      ON INIT { || DoMethod( 'JanelaLogin' , 'oUsuario' , 'Setfocus' ) }
      
      ON KEY ESCAPE ACTION { || DoMethod( 'JanelaLogin' , 'Release' ) }
	  
* Linha Vertical

      DRAW LINE IN WINDOW JanelaLogin AT 0 , 0 TO 200 , 0 PENCOLOR AZUL_006 PENWIDTH 8
      DRAW LINE IN WINDOW JanelaLogin AT 0 , 468 TO 200 , 468 PENCOLOR AZUL_006 PENWIDTH 8
      
* Linha Horizontal

      DRAW LINE IN WINDOW JanelaLogin AT 0 , 0 TO 0 , 468 PENCOLOR AZUL_006 PENWIDTH 8
      DRAW LINE IN WINDOW JanelaLogin AT 200 , 0 TO 200 , 468 PENCOLOR AZUL_006 PENWIDTH 8

      DEFINE IMAGE ImageLogin
      
         ROW    25
         COL    15
         WIDTH  128
         HEIGHT 128
         PICTURE 'img\Login-icon128x128.png'
         STRETCH .T.
         TRANSPARENT .F.         
      
      END IMAGE
	  
      DEFINE LABEL oLBTitulo
      
        ROW    160
        COL    32
        WIDTH  250
        HEIGHT 32
        VALUE "Acesso ao Sistema"
        FONTNAME "Arial"
        FONTSIZE 14
        FONTBOLD .T.
		FONTITALIC .T.
		FONTCOLOR AZUL_006
        VISIBLE .T.        
        TRANSPARENT .F.
      
      END LABEL	  
	  
      DEFINE LABEL oLBUsuario
      
        ROW    20
        COL    160
        WIDTH  85
        HEIGHT 24
        VALUE "Usuário:"
        FONTNAME "Arial"
        FONTSIZE 14
        FONTBOLD .T.
        VISIBLE .T.
        TRANSPARENT .F.
        BACKCOLOR Nil
        FONTCOLOR Nil
      
      END LABEL
      
      DEFINE TEXTBOX oUsuario
      
        ROW    46
        COL    160
        WIDTH  298
        HEIGHT 32
        FONTNAME "Arial"
        FONTSIZE 12
        TOOLTIP "Digite o nome do usuário"
        FONTBOLD .T.
        TABSTOP .T.
        VISIBLE .T.
        BACKCOLOR BK_TEXTO3
        FONTCOLOR PRETO
        OnEnter { || DoMethod( 'JanelaLogin' , 'oSenha' , 'Setfocus' ) }
      
      END TEXTBOX      
      
      DEFINE LABEL oLBSenha
      
        ROW    86
        COL    160
        WIDTH  75
        HEIGHT 24
        VALUE "Senha:"
        FONTNAME "Arial"
        FONTSIZE 14
        FONTBOLD .T.
        VISIBLE .T.        
        TRANSPARENT .F.
      
      END LABEL
      
      DEFINE TEXTBOX oSenha
      
        ROW    110
        COL    160
        WIDTH  298
        HEIGHT 32
        FONTNAME "Arial"
        FONTSIZE 12
        TOOLTIP "Digita a senha de acesso"
        FONTBOLD .T.
        TABSTOP .T.
        VISIBLE .T.
        BACKCOLOR BK_TEXTO3
        FONTCOLOR PRETO
        PASSWORD .T.
        ONENTER { || .T. }
      
      END TEXTBOX
 
    DEFINE BUTTON ButtonLoginEntrar
    
        ROW    160
        COL    250
        WIDTH  100
        HEIGHT 28
        ACTION { || EntrarnoSistema() }
        CAPTION "Entrar"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP "Acessa o Sistema"
        FONTBOLD .T.
        FLAT .F.
        TABSTOP .T.
        VISIBLE .T.
        TRANSPARENT .F.
        MULTILINE .F.
        
    END BUTTON

    DEFINE BUTTON ButtonLoginCancelar
    
        ROW    160
        COL    360
        WIDTH  100
        HEIGHT 28
        ACTION { || SairSistema() }
        CAPTION "Cancelar"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP "Sai do Sistema"
        FONTBOLD .T.
        FLAT .F.
        TABSTOP .T.
        VISIBLE .T.
        TRANSPARENT .F.
        
    END BUTTON     

   END WINDOW
   
   DoMethod( 'JanelaLogin' , 'Center' )
   DoMethod( 'JanelaLogin' , 'Activate' )

RETURN .T.
*-----------------------------------------------------------------------------*
FUNCTION SairSistema()

   DoMethod( 'JanelaPrincipal' , 'Release' )

   DoMethod( 'JanelaLogin'     , 'Release' )

RETURN NIL
*-----------------------------------------------------------------------------*
FUNCTION EntrarnoSistema()

   DoMethod( 'JanelaLogin' , 'Release' )

RETURN NIL
Abraços.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Dúvida sobre menu de opções em Minigui

Mensagem por Toledo »

O máximo que consegui chegar foi este código:

Código: Selecionar todos

#include "minigui.ch"

#define AZUL_006 {0,73,148}

PROCEDURE Main ()

        DEFINE WINDOW Form_main ;
                AT 0,0 ;
                WIDTH 620 ;
                HEIGHT 420 ;
                TITLE "Draw Gradient" ;
                MAIN  NOMAXIMIZE NOSIZE ;
                ON INIT { || Login() } ;
                ON RELEASE ExitGradientFunc() 

                DRAW GRADIENT IN WINDOW Form_main AT 20,20 TO 370,600 ;
                          VERTICAL BORDER 2 ;
                          BEGINCOLOR {70,130,180} ;
                          ENDCOLOR {176,196,222}  

                @ 50, 110 LABEL Label_1 VALUE "DraW Gradient" AUTOSIZE ;
                          FONT "Arial" SIZE 16 BOLD TRANSPARENT 

                @ 150, 50 TEXTBOX Text_1 ;
                          HEIGHT 30 ;
                          WIDTH	100 ;
                          MAXLENGTH 10

                @ 330, 240 BUTTON Button_1 ;
                          CAPTION "&Sair" ;
                          ACTION ThisWindow.Release ;
                          WIDTH 150 HEIGHT 26 DEFAULT

        END WINDOW

        Center Window Form_main

        Activate Window Form_main

Return

FUNCTION LOGIN()

   DEFINE WINDOW JanelaLogin ;
      AT 278 , 252 WIDTH 468 HEIGHT 200 ;
      TITLE 'Acesso ao Sistema' ;
      MODAL ;
      NOSIZE ;
      NOSYSMENU ;
      NOCAPTION 
   
      DRAW RECTANGLE IN WINDOW JanelaLogin AT 0 , 0 TO 200 , 468 PENCOLOR AZUL_006 PENWIDTH 8

      DEFINE IMAGE ImageLogin
      
         ROW    25
         COL    15
         WIDTH  128
         HEIGHT 128
         PICTURE 'img\Login-icon128x128.png'
         STRETCH .T.
         TRANSPARENT .F.         
      END IMAGE
     
      DEFINE LABEL oLBTitulo
        ROW    160
        COL    32
        WIDTH  250
        HEIGHT 32
        VALUE "Acesso ao Sistema"
        FONTNAME "Arial"
        FONTSIZE 14
        FONTBOLD .T.
        FONTITALIC .T.
        FONTCOLOR AZUL_006
        VISIBLE .T.        
        TRANSPARENT .F.
      END LABEL     
     
      DEFINE LABEL oLBUsuario
        ROW    20
        COL    160
        WIDTH  85
        HEIGHT 24
        VALUE "Usuário:"
        FONTNAME "Arial"
        FONTSIZE 14
        FONTBOLD .T.
        VISIBLE .T.
        TRANSPARENT .F.
        BACKCOLOR Nil
        FONTCOLOR Nil
      END LABEL
      
      DEFINE TEXTBOX oUsuario
        ROW    46
        COL    160
        WIDTH  298
        HEIGHT 32
        FONTNAME "Arial"
        FONTSIZE 12
        TOOLTIP "Digite o nome do usuário"
        FONTBOLD .T.
        TABSTOP .T.
        VISIBLE .T.
*        BACKCOLOR BK_TEXTO3
        FONTCOLOR BLACK
        OnEnter { || InsertTab() }
      END TEXTBOX      
      
      DEFINE LABEL oLBSenha
        ROW    86
        COL    160
        WIDTH  75
        HEIGHT 24
        VALUE "Senha:"
        FONTNAME "Arial"
        FONTSIZE 14
        FONTBOLD .T.
        VISIBLE .T.        
        TRANSPARENT .F.
      END LABEL
      
      DEFINE TEXTBOX oSenha
        ROW    110
        COL    160
        WIDTH  298
        HEIGHT 32
        FONTNAME "Arial"
        FONTSIZE 12
        TOOLTIP "Digita a senha de acesso"
        FONTBOLD .T.
        TABSTOP .T.
        VISIBLE .T.
*        BACKCOLOR BK_TEXTO3
        FONTCOLOR BLACK
        PASSWORD .T.
        ONENTER { || InsertTab() }
      END TEXTBOX
 
    DEFINE BUTTON ButtonLoginEntrar
        ROW    160
        COL    250
        WIDTH  100
        HEIGHT 28
        ACTION { || EntrarnoSistema() }
        CAPTION "Entrar"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP "Acessa o Sistema"
        FONTBOLD .T.
        FLAT .F.
        TABSTOP .T.
        VISIBLE .T.
        TRANSPARENT .F.
        MULTILINE .F.
    END BUTTON

    DEFINE BUTTON ButtonLoginCancelar
        ROW    160
        COL    360
        WIDTH  100
        HEIGHT 28
        ACTION { || SairSistema() }
        CAPTION "Cancelar"
        FONTNAME "Arial"
        FONTSIZE 9
        TOOLTIP "Sai do Sistema"
        FONTBOLD .T.
        FLAT .F.
        TABSTOP .T.
        VISIBLE .T.
        TRANSPARENT .F.
    END BUTTON     

   END WINDOW

   ON KEY ESCAPE OF JanelaLogin ACTION { || JanelaLogin.Release }
   
   JanelaLogin.Center
   JanelaLogin.Activate

RETURN .T.
*-----------------------------------------------------------------------------*
FUNCTION SairSistema()

  ReleaseAllWindows()

RETURN NIL
*-----------------------------------------------------------------------------*
FUNCTION EntrarnoSistema()

   JanelaLogin.Release

RETURN NIL
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Dúvida sobre menu de opções em Minigui

Mensagem por Paulo_CPV »

Boa noite!

Em primeiro lugar muito obrigado pelas suas dicas Toledo, agora deu certo. Gostaria de uma informação sua pegue um exemplo de um colega do Forum na seção de Downloads que cria menus de opções em Harbour. Pergunta será que é possível adaptar está rotina para o Minigui Extend?

Abraços,

Paulo - Jacareí/SP
Anexos
Menus_MNU.rar
(498.61 KiB) Baixado 126 vezes
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Dúvida sobre menu de opções em Minigui

Mensagem por Toledo »

Paulo_CPV escreveu:será que é possível adaptar está rotina para o Minigui Extend?
Amigo, acho que você já deve ter notado que o código para montar um Menu na MiniGui é completamente diferente da maneira como estamos acostumado a fazer no Harbour/Clipper, então o código desta rotina de menu não será aproveitado, você poderá apenas pegar a ideia por trás da rotina.

Um menu construído em modo dinâmico, mas utilizando vetores, veja neste tópico: Exemplo de menu com Nível

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder