Clipper On Line • Ver Tópico - Usando o menu ACHOICE() com o mouse

Usando o menu ACHOICE() com o mouse

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Usando o menu ACHOICE() com o mouse

Mensagempor JorgeLuizGouveia » 31 Mar 2020 15:35

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

Usuário Nível 1
 
Mensagens: 5
Data de registro: 26 Mar 2020 13:43
Cidade/Estado: Teresina/PI
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Usando o menu ACHOICE() com o mouse

Mensagempor JorgeLuizGouveia » 31 Mar 2020 21:36

Olá?
Alguém para resolver esse problema?
JorgeLuizGouveia
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 5
Data de registro: 26 Mar 2020 13:43
Cidade/Estado: Teresina/PI
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Usando o menu ACHOICE() com o mouse

Mensagempor Anilto » 20 Abr 2020 02:41

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:

/*    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
Anilto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 12
Data de registro: 05 Abr 2017 20:14
Cidade/Estado: Ribeirão Pires/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Usando o menu ACHOICE() com o mouse

Mensagempor JoséQuintas » 20 Abr 2020 05:46

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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Usando o menu ACHOICE() com o mouse

Mensagempor Vlademiro » 20 Abr 2020 13:20

Acho que ele quer usando somente recursos do Clipper ou uma lib para Clipper.
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

Usando o menu ACHOICE() com o mouse

Mensagempor JoséQuintas » 20 Abr 2020 14:32

É 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Usando o menu ACHOICE() com o mouse

Mensagempor Anilto » 20 Abr 2020 15:18

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.
José Anilto
cap.anilto@gmail.com
Anilto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 12
Data de registro: 05 Abr 2017 20:14
Cidade/Estado: Ribeirão Pires/SP
Curtiu: 0 vez
Mens.Curtidas: 1 vez




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro