DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
Moderador: Moderadores
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
Amigos
Estou tentando usar a seguinte função:
AddObj(lastwindow,{|janela|WVW_DrawButton(JANELA, 1,2,1,23 ,"Cadastrar",,,RGB(240,230,140),, )})
Porém, o botão aparece estático. Gostaria de saber como torná-lo clicável e atribuir a ele uma função. Se possível também, saber como aumentar o tamanho da fonte.
Grato!
Paulo
Estou tentando usar a seguinte função:
AddObj(lastwindow,{|janela|WVW_DrawButton(JANELA, 1,2,1,23 ,"Cadastrar",,,RGB(240,230,140),, )})
Porém, o botão aparece estático. Gostaria de saber como torná-lo clicável e atribuir a ele uma função. Se possível também, saber como aumentar o tamanho da fonte.
Grato!
Paulo
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
xiiii
aí não aparece onde?
mostra o código por favor!
aí não aparece onde?
mostra o código por favor!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
MICROVOLUTION - 16 anos Evoluindo Com Você!
Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
- acelconsultoria
- Usuário Nível 3

- Mensagens: 231
- Registrado em: 10 Jan 2006 17:05
- Localização: Itápolis-SP
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
Bom dia,
Eu não sei como você quer colocar esses botões, se for pra colocar vários em sequência, é melhor você optar por montar uma toolbar com a GTWVW.
Mas caso você queira colocar apenas um ou outro botão na tela, é mais fácil você colocar um PushButton, que a sintaxe é bem simples de entender e você já coloca a função a ser chamada nele mesmo:
Onde:
nJanela: número da janela onde o botão será criado
22, 42, 22, 48: coordenadas de linha inicial, coluna inicial, linha final e coluna final
"imprimir": rótulo do botão
{|| Relatorio() } : Code Block que irá chamar a função Relatorio()
Eu não sei como você quer colocar esses botões, se for pra colocar vários em sequência, é melhor você optar por montar uma toolbar com a GTWVW.
Mas caso você queira colocar apenas um ou outro botão na tela, é mais fácil você colocar um PushButton, que a sintaxe é bem simples de entender e você já coloca a função a ser chamada nele mesmo:
Código: Selecionar todos
wvw_pbCreate( nJanela, 22, 42, 22, 48, "Imprimir", , {|| Relatorio() } )
nJanela: número da janela onde o botão será criado
22, 42, 22, 48: coordenadas de linha inicial, coluna inicial, linha final e coluna final
"imprimir": rótulo do botão
{|| Relatorio() } : Code Block que irá chamar a função Relatorio()
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Consultoria e Projetos
-------------------------------------------------------
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
O post original é antigo, quase um ano atrás.
Caso ainda não tenha resolvido, a sugestão é quase a mesma da anterior o pushbutton, mas pra GTWVG o wvgPushButton.
Caso ainda não tenha resolvido, a sugestão é quase a mesma da anterior o pushbutton, mas pra GTWVG o wvgPushButton.
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/
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/
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
Realmente, é um post antigo, e agradeço imensamente pela colaboração. Farei os devidos testes.
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
Amigos, estou testando os códigos. Achei muito interessante
Gostaria de uma dica de como fazer uma toobar com esses recursos e se é possível formatar o texto dos botões, mudar cor e/ou inserir imagens.
Grato!
Paulo
Gostaria de uma dica de como fazer uma toobar com esses recursos e se é possível formatar o texto dos botões, mudar cor e/ou inserir imagens.
Grato!
Paulo
- acelconsultoria
- Usuário Nível 3

- Mensagens: 231
- Registrado em: 10 Jan 2006 17:05
- Localização: Itápolis-SP
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
Bom dia, Paulo.
Acredito que o Quintas deva ter boas cartas na manga sobre trabalhar com Toolbar. Sei que com a GTWVW, já é um processo que exige muitas linhas de programação.
Existe um exemplo na pasta contrib\gtwvw\tests\DEMO.PRG que mostra bem o funcionamento da toolbar com a GTWVW, mas gasta-se um certo tempo para "preparar o terreno" e utilizar.
1. Preparar as imagens que você quer utilizar na toolbar. Você pode usar as que você tem aí, ou buscar na internet algum conjunto de ícones que satisfaça seu gosto visual. Mas o importante nisso, é que as imagens devem estar no formato BMP, e eu aconselho uma resolução de 72x72, pois aí dá pra você usar no tamanho menor, sem perder qualidade.
2. No início do módulo, você precisa incluir as #define's que servirão como referência de ação na toolbar, no exemplo DEMO.PRG está assim:
3. A função que cria a toolbar e acrescenta os botões. Pra isso, usa-se as funções wvw_TbCreate() e wvw_tbAddButton(). Note que no exemplo da DEMO.PRG, a maioria dos botões foram configurados pra utilizar ícones padrão, definidos no arquivo include "commctrl.h". Porém, você pode usar os seus BMPs também, observando onde está comentado "using custom bitmaps":
A toolbar da GTWVW não oferece opção de alterar a fonte e o tamanho. Apenas temos como escolher exibir ou não o texto dentro dos botões.
4. Precisa de uma função que faz a leitura dos eventos, aguardando o usuário clicar em alguma opção da toolbar. Na DEMO.PRG, a função "nAfterInkey()" faz esse papel. Essa função não existe pronta na GTWVW, tem que ser incluída no seu programa, conforme o exemplo.
5. Enfim, depois de "ler" os eventos, é necessário direcionar o evento para o comando, procedure ou função desejada. No exemplo, a função que faz isso é a "nMenuChecker()". Na DEMO.PRG, essa função faz o direcionamento de tudo, tanto das opções do Menu do sistema, quanto da toolbar.
Bom... se você pegar esses trechos de códigos que postei aqui e jogar num PRG, não vai funcionar. Pois vão faltar diversas variáveis criadas para que a estrutura funcione. Mas quis apenas resumir os passos para se trabalhar com uma toolbar na GTWVW, apontando no exemplo DEMO.PRG o que faz a Toolbar funcionar. Caso você venha a utilizar 2 toolbar's no seu programa, por exemplo: uma toolbar na tela principal e outra toolbar para as telas de cadastro, você terá que criar 2 estruturas dessas pra trabalhar em janelas diferentes... porém, aquela toolbar criada para as telas de cadastro pode ser a mesma para todos os cadastros.
Espero ter ajudado, pelo menos a entender um pouquinho, como funcionaria na GTWVW.
Acredito que o Quintas deva ter boas cartas na manga sobre trabalhar com Toolbar. Sei que com a GTWVW, já é um processo que exige muitas linhas de programação.
Existe um exemplo na pasta contrib\gtwvw\tests\DEMO.PRG que mostra bem o funcionamento da toolbar com a GTWVW, mas gasta-se um certo tempo para "preparar o terreno" e utilizar.
1. Preparar as imagens que você quer utilizar na toolbar. Você pode usar as que você tem aí, ou buscar na internet algum conjunto de ícones que satisfaça seu gosto visual. Mas o importante nisso, é que as imagens devem estar no formato BMP, e eu aconselho uma resolução de 72x72, pois aí dá pra você usar no tamanho menor, sem perder qualidade.
2. No início do módulo, você precisa incluir as #define's que servirão como referência de ação na toolbar, no exemplo DEMO.PRG está assim:
Código: Selecionar todos
#define IDM_NETCONNECT 401
#define IDM_NETDISCONNECT 402
#define IDM_BACK 403
#define IDM_FORWARD 404
#define IDM_COPY 405
#define IDM_PASTE 406
Código: Selecionar todos
PROCEDURE CreateToolbar( nWinNum )
// for toolbar:
LOCAL nSysBitmap := 1 // como a imagem vai aparecer - 0:não aparece 1:formato pequeno 2:formato grande
LOCAL lDisplayText := .F. // .T. exibe texto no botão, .F. o texto aparece como hint
wvw_tbDestroy( nWinNum ) // limpar o buffer para criar a toolbar
IF Empty( wvw_tbCreate( nWinNum, lDisplayText, , nSysBitmap ) )
lboxmessage( "FAILED create toolbar" )
RETURN
ENDIF
/* system bitmaps use constants in commctrl.h */
/* using system view bitmaps */
wvw_tbAddButton( nWinNum, IDM_NETCONNECT, 9 /*VIEW_NETCONNECT*/, "Connect", 2 )
wvw_tbAddButton( nWinNum, IDM_NETDISCONNECT, 10 /*VIEW_NETDISCONNECT*/, "Dis", 2 )
wvw_tbAddButton( nWinNum ) // separator
/* using system history bitmaps */
wvw_tbAddButton( nWinNum, IDM_BACK, 0 /*HIST_BACK*/, "Back", 3 )
wvw_tbAddButton( nWinNum, IDM_FORWARD, 1 /*HIST_FORWARD*/, "Forward", 3 )
wvw_tbAddButton( nWinNum ) // separator
/* using custom bitmaps */
wvw_tbAddButton( nWinNum, IDM_DEMO_BROWSE, hb_DirBase() + "def2.bmp", "Browse", 0 )
wvw_tbAddButton( nWinNum, IDM_DEMO_GET, hb_DirBase() + "vouch1.bmp", "Get", 0 )
wvw_tbAddButton( nWinNum ) // separator
/* using system standard bitmaps */
wvw_tbAddButton( nWinNum, IDM_COPY, 1 /*STD_COPY*/, "Copy", 1 )
wvw_tbAddButton( nWinNum, IDM_PASTE, 2 /*STD_PASTE*/, "Paste", 1 )
wvw_tbAddButton( nWinNum ) // separator
wvw_tbAddButton( nWinNum, IDM_HELP_INFO, 10 /*STD_PROPERTIES*/, "Info", 1 )
wvw_tbAddButton( nWinNum, IDM_HELP_HELP, 11 /*STD_HELP*/, "Help", 1 )
RETURN
4. Precisa de uma função que faz a leitura dos eventos, aguardando o usuário clicar em alguma opção da toolbar. Na DEMO.PRG, a função "nAfterInkey()" faz esse papel. Essa função não existe pronta na GTWVW, tem que ser incluída no seu programa, conforme o exemplo.
Código: Selecionar todos
STATIC FUNCTION nAfterInkey( nKey )
// check if nkey is:
// (1) menu command, or
// (2) mouse button action
LOCAL bAction
LOCAL nKeyStd := hb_keyStd( nKey )
IF nKey == WVW_DEFAULT_MENUKEYEVENT
// MenuKeyEvent
RETURN nMenuChecker( wvw_GetLastMenuEvent() )
// was: ELSEIF AScan( { K_LBUTTONDOWN, K_LBUTTONUP, K_MOUSEMOVE }, nKeyStd ) > 0
ELSEIF AScan( { K_LBUTTONDOWN, K_LBUTTONUP, K_MOUSEMOVE, K_MMLEFTDOWN, K_LDBLCLK }, nKeyStd ) > 0
// MouseEvent
RETURN wvwm_nMouseChecker( nkey )
ELSEIF ( bAction := SetKey( nKey ) ) != NIL .OR. ;
( bAction := SetKey( nKeyStd ) ) != NIL
Eval( bAction, ProcName(), ProcLine(), ReadVar() )
RETURN 0
ENDIF
RETURN nKey
Código: Selecionar todos
STATIC FUNCTION nMenuChecker( nMenuEvent )
LOCAL nkey := 0
xDisableMenus( 0, 4 )
// xDisableToolbar( 0 )
SWITCH nMenuEvent
CASE IDM_DEMO_GET
// lboxmessage( "Demo GET" )
Demo_Get()
EXIT
CASE IDM_DEMO_BROWSE
// lboxmessage( "Demo BROWSE" )
Demo_Browse()
EXIT
CASE IDM_DEMO_CONSOLE
// lboxmessage( "Demo CONSOLE" )
Demo_Console()
EXIT
#if 0
CASE IDM_DEMO_COLOR
// lboxmessage( "Demo COLOR" )
Demo_Color()
EXIT
#endif
CASE IDM_DEMO_EXIT
// lboxmessage( "should EXIT!" )
nkey := K_ESC
EXIT
CASE IDM_WINDOW_SPACING_INCREASE
wvw_SetLineSpacing( , wvw_SetLineSpacing() + 2 )
EXIT
CASE IDM_WINDOW_SPACING_DECREASE
wvw_SetLineSpacing( , wvw_SetLineSpacing() - 2 )
EXIT
CASE IDM_WINDOW_SPACING_DEFAULT
wvw_SetDefLineSpacing( wvw_SetLineSpacing() )
EXIT
CASE IDM_TOOLBAR_ENABLE
xEnableToolbar( 0 )
EXIT
CASE IDM_TOOLBAR_DISABLE
xDisableToolbar( 0 )
EXIT
CASE IDM_TOOLBAR_RESET
CreateToolbar( 0 )
EXIT
CASE IDM_TOOLBAR_DELETE
wvw_tbDestroy( 0 )
EXIT
CASE IDM_HELP_HELP
xHelp()
EXIT
CASE IDM_HELP_INFO
xDebugInfo()
EXIT
OTHERWISE
lboxmessage( "Sorry, unrecognized menu option: " + hb_ntos( nMenuEvent ) )
ENDSWITCH
// xEnableToolbar( 0 )
xEnableMenus( 0, 4 )
RETURN nkey
Espero ter ajudado, pelo menos a entender um pouquinho, como funcionaria na GTWVW.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Consultoria e Projetos
-------------------------------------------------------
DEMO.PRG - Exemplo Simples com GTWVW e GTWVG
Muitíssimo obrigado, meu amigo.
Vou estudar bem esse material. Ontem já consegui fazer bastante coisa só com o botão.
Valeu mesmo
Abraços
Paulo
Vou estudar bem esse material. Ontem já consegui fazer bastante coisa só com o botão.
Valeu mesmo
Abraços
Paulo
