Clipper On Line • Ver Tópico - Dúvida, como criar botões

Dúvida, como criar botões

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

Moderador: Moderadores

 

Dúvida, como criar botões

Mensagempor porter » 04 Jul 2017 18:16

Olá pessoal, achei essa rotina aqui no fórum, compilei e agora estou executando para
entender como se cria um botão, mas durante a execução, quando chega nessa linha:
oButton:Create( , , { -nRow, -nCol }, { -2, -7 } ), // se comentar essa linha, executa normalmente, mas não cria os botões.

da mensagem: test.exe parou de funcionar

Harbour 3.2.0dev (console)

LOCAL cResp
     
SetMode( 28, 80 )
SetColor( "W/B" )
CLS
DO WHILE .T.
     cResp := Mens( 22, 3, { "GGrava", "DDesiste", "SSair" } )
     @ 10, 5 SAY "Opcao escolhida " + cResp
     IF cResp == "S"
        EXIT
     ENDIF
ENDDO
RETURN



FUNCTION Mens( nRow, nCol, aLstOpcao )
     
LOCAL oButton, aLstButton := {}, cOpcao, nKey, lFound
     
FOR EACH cOpcao IN aLstOpcao // faz pra cada opção no array
      oButton := wvgPushButton():New()
      oButton:PointerFocus := .F.
      oButton:Border          := .T.
      oButton:Caption        := Substr( cOpcao, 2 )                    // sem a primeira letra
      oButton:TooltipText  := Substr( cOpcao, 2 )                    // sem a primeira letra
      oButton:Activate       := BuildBlock( Left( cOpcao, 1 ) )   // somente primeira letra
      oButton:Create( , , { -nRow, -nCol }, { -2, -7 } )  [b]<---  Erro nessa linha [/b]
      AAdd( aLstButton, oButton ) // adiciona o botão no array de botões
      nCol += 12
NEXT
nKey := 0
DO WHILE nKey == 0
           nKey := Inkey(0)
           lFound := .F.
           FOR EACH cOpcao IN aLstOpcao // pra verificar se a letra digitada está na lista
              IF Upper( Chr( nKey ) ) == Left( cOpcao, 1 )
                 nKey := Asc( Left( cOpcao, 1 ) )
                 lFound := .T.
                 EXIT
              ENDIF
           NEXT
           IF .NOT. lFound // se não está na lista, continua no loop
              nKey := 0
           ENDIF
ENDDO
FOR EACH oButton IN aLstButton // se já respondeu a pergunta, não precisa mais dos botões, destrói cada botão do array
       oButton:Destroy()
NEXT
RETURN Chr( nKey )


STATIC FUNCTION BuildBlock( cLetra )
        RETURN { || hb_KeyPut( cLetra ) }


teste.hbp
-otest  
#-inc         
-compr=yes
-quiet
-lxhb
-lhbwin
-lhbct

#-gui
-prgflag=-b

#-strip
#-compr

#-st
-gtwvg

test.prg

porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Dúvida, como criar botões

Mensagempor JoséQuintas » 04 Jul 2017 19:05

Troque -gtwvg por GTWVG.HBC

Se ainda não resolver, acrescente

PROCEDURE HB_GT_SYS

   REQUEST HB_GT_WVG_DEFAULT

   RETURN


À primeira vista, o fonte está correto.
Mas.... pra criar um botão GTWVG precisa uma janela GTWVG.
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: 18015
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Dúvida, como criar botões

Mensagempor porter » 05 Jul 2017 11:36

Olá José Quintas,
Está dando erro, porque compilei junto com o sistema, mas criei uma pasta separada
e funcionou perfeitamente, não precisa usar nem a rotina abaixo:

PROCEDURE HB_GT_SYS
      REQUEST HB_GT_WVG_DEFAULT
      RETURN


Os comandos abaixo, tenho no sistema, e só deu certo ao comentá-los, mas eu preciso deles
para deixar a tela maximizada, então ficou esse problema se eu tira-los minha tela não fica
maximizada, mas se usa-los não consigo utilizar essa rotina de botões.

REQUEST HB_GT_WVT_DEFAULT // TELA MAXIMIZADA
hb_gtinfo(HB_GTI_MAXIMIZED, .T.) // TELA MAXIMIZADA

Harbour 3.2.0dev (console)
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Dúvida, como criar botões

Mensagempor JoséQuintas » 05 Jul 2017 12:04

Vai ter que decidir entre usar GTWVT ou GTWVG.

Deixei de usar tela maximizada nos tempos do Clipper, Windows 98 e Messenger, há 20 anos atrás.

O que chama de tela maximizada?
Sumir com Windows da tela ou expandir ao máximo?
A GTWVG também expande ao máximo que der, de acordo com tamanho de fonte e área útil da tela.
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: 18015
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Dúvida, como criar botões

Mensagempor porter » 05 Jul 2017 13:34

O que chama de tela maximizada?
Sumir com Windows da tela ou expandir ao máximo?
A GTWVG também expande ao máximo que der, de acordo com tamanho de fonte e área útil da tela.


Quero expandir ao máximo e não sumir com windows da tela, como ficaria o comando com o GTWVG ?

Obrigado.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Dúvida, como criar botões

Mensagempor porter » 05 Jul 2017 14:47

Não estou conseguindo obter o mesmo efeito que o GTWVT, com o GTWVG, precisa
da intervenção do usuário para ficar em tela cheia tomando a área do DeskTop.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Dúvida, como criar botões

Mensagempor JoséQuintas » 05 Jul 2017 15:47

Com certeza tem algo equivalente, lembro de já ter usado, e até já passou aqui no fórum.
Outra opção interessante é salvar/restaurar tamanho de fonte.
Volta do jeito que o usuário deixar.
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: 18015
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 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