Olá!
Quero o código fonte do menu ACHOICE() com o mouse, para editar?
Poderiam me ajudar?

Moderador: Moderadores
/* 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
Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes