Olá!
Quero o código fonte do menu ACHOICE() com o mouse, para editar?
Poderiam me ajudar?
Usando o menu ACHOICE() com o mouse
Moderador: Moderadores
-
JorgeLuizGouveia
- Usuário Nível 1

- Mensagens: 5
- Registrado em: 26 Mar 2020 13:43
- Localização: Teresina/PI
-
JorgeLuizGouveia
- Usuário Nível 1

- Mensagens: 5
- Registrado em: 26 Mar 2020 13:43
- Localização: Teresina/PI
-
Anilto
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 05 Abr 2017 20:14
- Localização: Ribeirão Pires/SP
Usando o menu ACHOICE() com o mouse
Para usar o Achoice() com mouse, só precisa setar o contexto correto, que, no aso do windows é HB_GT_WVT.
Se usar HB_GT_WIN, o mouse não funciona.
Exemplo:
Se usar HB_GT_WIN, o mouse não funciona.
Exemplo:
Código: Selecionar todos
/* AChoice com mouse
Compilar com HBMK2 MOUSE02 HBCT.HBC
O Programa original:
#include "inkey.ch" // Key definitions
REQUEST HB_GT_WVT_DEFAULT
FUNCTION MAIN
LOCAL aOpc := {"Opc. 1","Opc. 2","Opc. 3"}, nOpc
SET( _SET_EVENTMASK, INKEY_ALL )
cls
nOpc := ACHOICE(1,1,10,20,aOpc)
? nOpc
RETURN NIL
*/
#include "inkey.ch"
/* Definições para facilidades do console do windows, codepages e localização */
#include "hbgtinfo.ch"
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PTISO
REQUEST HB_GT_WVT_DEFAULT /* HB_GT_WIN é o console puramente texto (o mouse não funciona bem nesse contexto */
/* Então usamos HT_GT_WVT, que usa o console co API do Windows (Não sei se funciona em outros SO */
FUNCTION MAIN
LOCAL aOpc := {"Ação entre amigos","Paranapauã","Credópolis", "Saída"}, nOpc := 0
Local cSai
SET( _SET_EVENTMASK, INKEY_ALL ) /* Habilita todas teclas e também eventos do mouse */
/* Para chamar as facilidades requisitadas por hbgtinfo e HB_GT_WVT */
HB_LANGSELECT('PT')
HB_CDPSELECT('PTISO')
HB_GtInfo( HB_GTI_MAXIMIZED, .F. )
HB_GtInfo( HB_GTI_FONTNAME, "Courier Prime" )
HB_GtInfo( HB_GTI_WINTITLE, "Teste de Achoice() com mouse" )
/* Configurações do console "a la Clipper" */
MSETCURSOR(.T.)
set cursor off
set score off
setmode(40,120)
Cls
/* Chama uma função que usa hbgtinfo para alterar a paleta de cores */
PALETA()
// Altera as cores padrão:
While nOpc != 4
SET COLOR TO (""w/bg,W+/rb,gr+/bg,gr+/rb,w/N,w/B"")
nOpc := ACHOICE(1,3,10,20,aOpc) /*Todo achoice funciona aqui */
cSai := "Opção: " + nTOc(nOpc)
@ 7, 3 SAY cSai COLOR "W+/N"
@ 8, 3 SAY cSai COLOR "GR+/B"
@ 9, 3 SAY cSai COLOR "RB+/G"
@ 10,3 SAY cSai COLOR "R+/BG"
@ 11,3 SAY cSai COLOR "BG+/R"
@ 12,3 SAY cSai COLOR "G+/RB"
@ 13,3 SAY cSai COLOR "B+/GR"
@ 14,3 SAY cSai COLOR "N+/W"
EndDo
InKey(8)
RETURN NIL
/* A função que altera a paleta de cores
Cada componente de cor pode receber um valor hexadecimal de dois dígitos (256 combinações)
B - de 00 a FF
G - de 00 a FF
R - de 00 a FF
Note que a combinação de digitos é BGR e não RGB
0xBBGGRR
*/
Function paleta()
local aPal := { 0x000000, ; //0 N
0xd27619, ; //1 B
0x004d00, ; //2 G
0xc1ac00, ; //3 BG
0x1c1cb7, ; //4 R
0xdaa89f, ; //5 RB
0xc8ccd7, ; //6 GR
0x222222, ; //7 W
0x888888, ; //8 N+
0xfab481, ; //9 B+
0x84c781, ; //10 G+
0xf2ebb2, ; //11 BG+
0x7373e5, ; //12 R+
0xdb9db3, ; //13 RB+
0x58eeff, ; //14 GR+
0xffffff } //15 W+
aPal1 := HB_GtInfo( HB_GTI_PALETTE, aPal)
Return NIL- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando o menu ACHOICE() com o mouse
Basta compilar indicando que é GUI.
-gui
ou o hbc: gui=yes
WVT é a lib gráfica default do Harbour, pra Windows ou Linux.
WVG é a lib WVT com adição de recursos exclusivamente Windows.
-gui
ou o hbc: gui=yes
WVT é a lib gráfica default do Harbour, pra Windows ou Linux.
WVG é a lib WVT com adição de recursos exclusivamente Windows.
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/
Usando o menu ACHOICE() com o mouse
Acho que ele quer usando somente recursos do Clipper ou uma lib para Clipper.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando o menu ACHOICE() com o mouse
É mesmo... o post tá no CA-Clipper.
Se for Clipper mesmo, talvez o 5.3 tenha recurso de mouse.
No 5.2 só usando superlib, mas TEM QUE MODIFICAR.
Se não tomar cuidado, pode sobrecarregar o uso de CPU só por causa do mouse.
Mas mesmo no 5.3... isso de sobrecarregar também pode acontecer.
Se for Clipper mesmo, talvez o 5.3 tenha recurso de mouse.
No 5.2 só usando superlib, mas TEM QUE MODIFICAR.
Se não tomar cuidado, pode sobrecarregar o uso de CPU só por causa do mouse.
Mas mesmo no 5.3... isso de sobrecarregar também pode acontecer.
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/
-
Anilto
- Usuário Nível 1

- Mensagens: 12
- Registrado em: 05 Abr 2017 20:14
- Localização: Ribeirão Pires/SP
Usando o menu ACHOICE() com o mouse
No Clipper 5.3, o Achoice usa recursos do GETSYS, cujo código fonte está no SOURCE do Clipper. Já está preparado para o mouse, mas para isso precisa acrescentar a biblioteca llibg. (Não lembro bem como usei isso em 1999)
Só que funciona no DOS, mas não no windows. No windows é necessário acrescentar algum recurso do HB_GT_???. O que pesa no Harbour é a falta de documentação e os "forks" que nem sempre seguem um padrão.
Só que funciona no DOS, mas não no windows. No windows é necessário acrescentar algum recurso do HB_GT_???. O que pesa no Harbour é a falta de documentação e os "forks" que nem sempre seguem um padrão.
José Anilto
cap.anilto@gmail.com
cap.anilto@gmail.com
