Página 1 de 1

Usando o menu ACHOICE() com o mouse

Enviado: 31 Mar 2020 15:35
por JorgeLuizGouveia
Olá!
Quero o código fonte do menu ACHOICE() com o mouse, para editar?
Poderiam me ajudar?

Usando o menu ACHOICE() com o mouse

Enviado: 31 Mar 2020 21:36
por JorgeLuizGouveia
Olá?
Alguém para resolver esse problema?

Usando o menu ACHOICE() com o mouse

Enviado: 20 Abr 2020 02:41
por Anilto
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:

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

Usando o menu ACHOICE() com o mouse

Enviado: 20 Abr 2020 05:46
por JoséQuintas
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.

Usando o menu ACHOICE() com o mouse

Enviado: 20 Abr 2020 13:20
por Vlademiro
Acho que ele quer usando somente recursos do Clipper ou uma lib para Clipper.

Usando o menu ACHOICE() com o mouse

Enviado: 20 Abr 2020 14:32
por JoséQuintas
É 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.

Usando o menu ACHOICE() com o mouse

Enviado: 20 Abr 2020 15:18
por Anilto
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.