Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Moderador: Moderadores
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Boa tarde,
Alguem poderia me dizer se tem uma forma de customizar a aparência das telas das funções abaixo:
MsgInfo, MsgStop, MsgYesNo, MSGEXCLAMATION
Eu gostaria de alterar a fonte, cor de fundo e texto tanto do painel quanto dos botões.
É possível? Caso afirmativo, teria como explicar como fazer?
Outra coisa estou compilando minha aplicação conforme linha abaixo do HBP mas ocorre o erro "undefined reference HB_FUN_MSGINFO" as demais funções funciona ok.
xhb.hbc
hbwin.hbc
hbct.hbc
gtwvg.hbc
Grato!!!
rgds,
Alguem poderia me dizer se tem uma forma de customizar a aparência das telas das funções abaixo:
MsgInfo, MsgStop, MsgYesNo, MSGEXCLAMATION
Eu gostaria de alterar a fonte, cor de fundo e texto tanto do painel quanto dos botões.
É possível? Caso afirmativo, teria como explicar como fazer?
Outra coisa estou compilando minha aplicação conforme linha abaixo do HBP mas ocorre o erro "undefined reference HB_FUN_MSGINFO" as demais funções funciona ok.
xhb.hbc
hbwin.hbc
hbct.hbc
gtwvg.hbc
Grato!!!
rgds,
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Aqui eu uso, mas criei minhas próprias.
Se não me engano, também tem na HMG.
Na prática são a MessageBox() do Windows, apenas o ícone é que se altera.
No Harbour essa MessageBox() fica disponível na hbwin.
Nota: o nome das constantes pode variar conforme Harbour 3.2 ou 3.4
Se quiser diferente do Windows, só criando suas próprias rotinas, ou usando alguma que alguém tenha criado.
Se não me engano, também tem na HMG.
Na prática são a MessageBox() do Windows, apenas o ícone é que se altera.
No Harbour essa MessageBox() fica disponível na hbwin.
Nota: o nome das constantes pode variar conforme Harbour 3.2 ou 3.4
Código: Selecionar todos
FUNCTION MsgYesNo( cText )
LOCAL lValue
lValue := wapi_MessageBox( wvgSetAppWindow():hWnd, cText, "Confirmação", WIN_MB_YESNO + WIN_MB_ICONQUESTION + WIN_MB_DEFBUTTON2 ) == WIN_IDYES
RETURN lValue
FUNCTION MsgExclamation( cText )
wapi_MessageBox( wvgSetAppWindow():hWnd, cText, "Atenção", WIN_MB_ICONASTERISK )
RETURN NIL
FUNCTION MsgWarning( cText )
wapi_MessageBox( wvgSetAppWindow():hWnd, cText, "Atenção", WIN_MB_ICONEXCLAMATION )
RETURN NIL
FUNCTION MsgStop( cText )
wapi_MessageBox( wvgSetAppWindow():hWnd, cText, "Atenção", WIN_MB_ICONHAND )
RETURN NIL
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/
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Jose, consegui entender o conceito das mensagens. Mas não sei nem por onde começar para modificar minhas janelas. Teria como dar um exemplo ou apontar algum diretório do Harbour onde posso trabalhar?
Tentei verificar o fonte demowvg.prg mas ele precisa de threads e estou fugindo disso, hehehe...
Agradeceria muito se alguém pudesse me ajudar, inclusive colocarei o meu fonte final para todas degustarem.
obrigado.
rgds,
Tentei verificar o fonte demowvg.prg mas ele precisa de threads e estou fugindo disso, hehehe...
Agradeceria muito se alguém pudesse me ajudar, inclusive colocarei o meu fonte final para todas degustarem.
obrigado.
rgds,
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Me confundi.
É mensagens ou visual do aplicativo?
É mensagens ou visual do aplicativo?
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/
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Estou tenteando mudar a aparência da aplicação e por isso preciso mudar a aparência das mensagens. É possível?
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Ué.. pode deixar os fontes preparados pra isso, e depois se concentra só no visual.
No meu caso tenho minha rotina tradicional, e essas da API
Na tradicional, os parâmetros adicionais indicam se tem beep, ou se são no centro da tela.
Se no seu aplicativo ainda não usa rotina de mensagem, pode começar por aí.
Depois, pode alterar a rotina para o visual que quiser, e já altera todo aplicativo de uma vez.
Código: Selecionar todos
IF MsgYesNo( "Exclui" )
DELETE
ENDIF
Código: Selecionar todos
Mensagem( "Digite campos, ESC sai" )
Mensagem( "Sim ou Não", "S,N" )
Mensagem( "Sim ou não ou ESC", "S,N, 27" )
Mensagem( "Sim ou Nao", "S,N", 1, 1 )
MsgYesNo( "Sim ou não" )
Mensagem()
Se no seu aplicativo ainda não usa rotina de mensagem, pode começar por aí.
Depois, pode alterar a rotina para o visual que quiser, e já altera todo aplicativo de uma vez.
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
E no fonte anterior que postei, se não usar GTWVG é só verificar a função correspondente que retorne o handle da janela atual.
Se deixar sem nada funciona, mas não fica vinculada à janela atual, pode até ficar atrás da janela atual, por isso o handle é importante.
Se não me engano, hbwin tem equivalente a isso, pra retornar o hWnd da janela atual.
Dá uma testada e veja como fica.
Se deixar sem nada funciona, mas não fica vinculada à janela atual, pode até ficar atrás da janela atual, por isso o handle é importante.
Código: Selecionar todos
wapi_MessageBox( wvgSetAppWindow():hWnd, cText, "Atenção", WIN_MB_ICONASTERISK )
Dá uma testada e veja como fica.
Código: Selecionar todos
wapi_MessageBox( , cText, "Atenção" )
wapi_MessageBox( , cText, "Atenção", WIN_MB_ICONASTERISK )
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Só pra deixar ilustrado....
É engraçado, mas a mensagem console está mais com a cara do Windows 10 do que a da API do Windows kkkkkk
A da API Windows parece velha kkkk
Código: Selecionar todos
REQUEST HB_CODEPAGE_PTISO
#include "set.ch"
PROCEDURE Main
Set( _SET_CODEPAGE, "PTISO" )
SetMode(30,90)
SetColor("W/B")
CLS
Mensagem( "Digite campos, ESC Sai" )
Inkey(0)
Mensagem()
Inkey(0)
Mensagem( "Sim ou Não", "S,N" )
Mensagem( "Sim ou Não ou ESC", "S,N, 27" )
Mensagem( "Sim ou Não", "S,N", 1, 1 )
MsgYesNo( "Sim ou Não" )
Mensagem( "dshfksdhdkh dkslhklh kh kh kh kh kh kh kh kj hk hk hk hk jh kh k hk hk hl h" + ;
"kdskhdd fkhk hkhkj hkj hkj hkjh k hkh hk hk hkj h", " 13" )
Mensagem( "dshfksdhdkh dkslhklh kh kh kh kh kh kh kh kj hk hk hk hk jh kh k hk hk hl h" + ;
"kdskhdd fkhk hkhkj hkj hkj hkjh k hkh hk hk hkj h", " 13", 1, 1 )
RETURN
A da API Windows parece velha kkkk
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/
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Concordo com você Jose!
Este estilo chama-se flat design e é nele que estou me concentrando para fazer uma nova UI para console.
Vou criar uma nova função Alert ao estilo Flat com funcionalidade de mouse, e com alinhamento personalizado (esquerdo, direito, centralizado ou justificado). Tudo o que eu for desenvolvendo vou disponibilizar neste fórum.
rgds,
Este estilo chama-se flat design e é nele que estou me concentrando para fazer uma nova UI para console.
Vou criar uma nova função Alert ao estilo Flat com funcionalidade de mouse, e com alinhamento personalizado (esquerdo, direito, centralizado ou justificado). Tudo o que eu for desenvolvendo vou disponibilizar neste fórum.
rgds,
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Conforme prometido segue o meu fonte da minha função MsgAlert, similar ao Alert porem abre uma nova janela CRT por cima. Alem disso funciona com mudança de linha com o caracter ";" igual o alert mas a minha função pode justificar ou alinhar para a esquerda ou direita. Alem disso pode personalizar as cores dos botões. Eu deixei o padrão, vermelho e verde mas pode-se fazer com qualquer cor, basta alterar o fonte que esta bem simples.
- Anexos
-
fontes-msgalert.rar- Fontes MsgAlert
- (8.6 KiB) Baixado 213 vezes
-
- Tela do MsgAlert
- tela msgalert.png (11.63 KiB) Exibido 3760 vezes
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Bom dia, Lwinter...
Faltou definir essa variavel
┌──────────────────────────────────────────────────────────────┐
│ Error BASE/1003 Variable does not exist: WIN_SW_RESTORE │
│ │
│ Quit Retry │
└──────────────────────────────────────────────────────────────┘
Faltou definir essa variavel
┌──────────────────────────────────────────────────────────────┐
│ Error BASE/1003 Variable does not exist: WIN_SW_RESTORE │
│ │
│ Quit Retry │
└──────────────────────────────────────────────────────────────┘
lugab
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Talvez porque indicou LIBs e não HBC
gtwvg.hbc hbwin.hbc
gtwvg.hbc hbwin.hbc
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/
-
Ana Mitoooo
- Usuário Nível 3

- Mensagens: 118
- Registrado em: 17 Out 2018 10:00
- Localização: Sobradinho/DF
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Código: Selecionar todos
wvtwin.ch(287): #define SW_RESTORE 9
hbgtwvg.ch(143): #define HB_GTS_SW_RESTORE 9- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Só pra curiosidade, a GTWVG.HBC
skip={!allwin} significa que vai ser pulada se não for Windows
headers=hbgtwvg.ch wvgparts.ch wvtwin.ch são justamente os arquivos CH, que são adicionados no uso da GTWVG
libs=hbwin.hbc
Não concordo com essa parte, deveria ser só pelo #include mesmo.
É que se o aplicativo tratar GTWVG e outra LIB gráfica ao mesmo tempo, essa definição dentro do GTWVG.hbc vai atrapalhar, então melhor deixar manual.
O mesmo pra hbwin.hbc
Código: Selecionar todos
description=GTWVG (an extension of GTWVT, win-only)
skip={!allwin}
incpaths=.
headers=hbgtwvg.ch wvgparts.ch wvtwin.ch
gt=${_HB_DYNPREF}${hb_name}${_HB_DYNSUFF}
libs=hbwin.hbc
gui=yes
mt=yes
headers=hbgtwvg.ch wvgparts.ch wvtwin.ch são justamente os arquivos CH, que são adicionados no uso da GTWVG
libs=hbwin.hbc
Não concordo com essa parte, deveria ser só pelo #include mesmo.
É que se o aplicativo tratar GTWVG e outra LIB gráfica ao mesmo tempo, essa definição dentro do GTWVG.hbc vai atrapalhar, então melhor deixar manual.
O mesmo pra hbwin.hbc
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/
Customizar mensagens advertencias ex: MsfInfo, MsgStop, etc.
Me desculpe pela demora da resposta mas esta linha em questão não é necessária para a função MsgAlert. Se vocês tirarem vai funcionar normalmente. Eu herdei ela do exemplo da demowvg.prg e esqueci de tirar.
