Como criar uma janela de Opções?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Como criar uma janela de Opções?

Mensagem por Maurício Elias »

Olá, boa tarde pessoal.
Estou usando o HB32. Consegui ativar o mouse no modo texto console.
Eu gostaria de criar uma janela, com opções de Vídeo ou Impressora. Já tenho uma com o Achoice. Mas gostaria que tivesse uma opção para eu ticar com o mouse: [ ] Matricial.
Tem como eu criar uma janela, talvêz grafica, prá eu escolher uma das opções, e ainda marcar a opção [ ] Matricial com um X, ou um check ???
Será que consegui me explicar ?
Abraços.
_______
Maurício
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Como criar uma janela de Opções?

Mensagem por alxsts »

Olá!

Para telas DOS, o Harbour tem disponíveis estes controles que talvez te interessem:

@...GET RADIOGROUP

Código: Selecionar todos

// The example demonstrates how radio button groups can be integrated
// in the Get list and are filled with radio buttons.

#include "Inkey.ch"

PROCEDURE Main
   LOCAL aRadio1[3], aRadio2[4]
   LOCAL nSpeed, cPages
   LOCAL cColor1 := "W/B,W+/B,R/W+"
   LOCAL cColor2 := "N/BG,N/BG,GR+/BG,GR+/BG,N/BG,W+/BG,GR+/BG"

   SET EVENTMASK TO INKEY_ALL
   SET COLOR TO N/BG
   CLS
   nSpeed := 1            //default to the first item.

   aRadio1[ 1 ] := HbRadioButton():new( 4, 22, "&slow" )
   aRadio1[ 2 ] := HbRadioButton():new( 5, 22, "&medium" )
   aRadio1[ 3 ] := HbRadioButton():new( 6, 22, "&fast" )
   AEval( aRadio1, {|o| o:colorSpec := cColor2 } )

   cPages := "all"
   aRadio2[ 1 ] := HbRadioButton():new( 10, 22, "&first page", "this" )
   aRadio2[ 2 ] := HbRadioButton():new( 11, 22, "&this page" , "first")
   aRadio2[ 3 ] := HbRadioButton():new( 12, 22, "&last page" , "last" )
   aRadio2[ 4 ] := HbRadioButton():new( 13, 22, "&all pages" , "all"  )
   AEval( aRadio2, {|o| o:colorSpec := cColor2 } )

   @  3, 20,  7, 40 GET nSpeed ;
             RADIOGROUP aRadio1 ;
                CAPTION "&Speed" ;
                  COLOR cColor1

   @  9, 20, 14, 40 GET cPages ;
             RADIOGROUP aRadio2 ;
                CAPTION "&Pages" ;
                  COLOR cColor1
   READ

   ? nSpeed, cPages
RETURN
@...GET CHECKBOX

Código: Selecionar todos

// The example displays two Gets as check boxes using
// different styles.

#include "inkey.ch"

PROCEDURE Main
   LOCAL lVar1 := .F.
   LOCAL lVar2 := .T.

   CLS

   SET EVENTMASK TO INKEY_ALL

   @ 3, 3 GET lVar1 CHECKBOX ;
      CAPTION "&Married      " ;
        STYLE "[x ]"  ;
        COLOR "N/BG,W+/BG,N/BG,GR+/BG"

   @ 5, 3 GET lVar2 CHECKBOX ;
      CAPTION "&Self employed" ;
        STYLE "[o ]"  ;
        COLOR "N/BG,W+/BG,N/BG,GR+/BG"

   READ

RETURN
Ambos suportam uso de mouse.
[]´s
Alexandre Santos (AlxSts)
Maurício Elias
Usuário Nível 3
Usuário Nível 3
Mensagens: 304
Registrado em: 12 Mai 2005 08:48

Como criar uma janela de Opções?

Mensagem por Maurício Elias »

Olá pessoal.
Consegui fazer ambos os comandos acima funcionarem, porém:
O mouse não funciona com o RadioGroup ???
Deu erro de Variavel não existe: INKEY_ALL , ao comando:
SET EVENTMASK TO INKEY_ALL
Abraços.
_______
Maurício
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Como criar uma janela de Opções?

Mensagem por alxsts »

Olá!

INKEY_ALL é uma constante manifesta definida no arquivo inkey.ch. Observe a linha abaixo e assegure-se de que ela esteja presente no teu código, como no exemplo anterior. O arquivo inkey.ch deve estar presente na pasta include da instalação do Harbour e esta pasta deve constar na variável de ambiente include (SET include).

Código: Selecionar todos

#include "Inkey.ch"
[]´s
Alexandre Santos (AlxSts)
Responder