Problemas com Função

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Problemas com Função

Mensagem por asimoes »

Amgos,

Estou tendo um problema e não estou entendendo o motivo para não funcionar.

É o seguinte:

Tenho uma função chamada Opc_Impr() para perguntar ao usuário qual opção de impressão ele deseja fazer. Acontece que quando a função é chamada o foco fica no primeiro botão [Tela] passando o mouse sobre os outros botões eles não destacam e clicando no botão não faz nada
inclusive o tab não muda o foco.

Estou usando um exemplo que o nosso amigo Leonardo me enviou certa vez.
Extraido do fonte sagigui.prg

Obs: Estou usando VL + GtWvT

[]´s

Código: Selecionar todos

*******************************************************************************
* Biblioteca de Procedures e Functions
*******************************************************************************
#define x_BLUE       16711680
#define x_DARKBLUE   10027008
#define x_WHITE      16777215
#define x_CYAN       16776960
#define x_BLACK             0
#define x_RED             255
#define x_GREEN         32768
#define x_GRAY        8421504
#define x_YELLOW        65535

#include "windows.ch"
#include "guilib.ch"
#include "inkey.ch"
#include "hwgui.ch"
#include "common.ch"
#include "hbdll.ch"

#define ID_TEXTO  300

FUNCTION Opc_Impr
nValRet := 0
QualEscolha("Op‡äes para ImpressÆo","Escolha o direcionamento da ImpressÆo","Tela","Impressora","Sair")
IF nValRet=1
   vVideo := .t.
ELSEIF nValRet=2
   vVideo := .f.
ELSEIF nValRet=3
   Imp    := 'C'
   vVideo := .f.
ENDIF
RETURN

FUNCTION QualEscolha
LOCAL oWnd
PARA cTitulo,cMensagem,cBut1,cBut2,cBut3
   INIT DIALOG oWnd TITLE HB_OemToAnsi(cTitulo) ;
   AT 100,150 SIZE 600,200 NOEXIT;
   FONT HFont():Add( 'Arial',0,-16,400,,,) ;
   STYLE WS_DLGFRAME + WS_SYSMENU + DS_CENTER
   @ 60, 50  SAY HB_OemToAnsi(cMensagem) SIZE 500,100
   @ 70, 120 BUTTON HB_OemToAnsi(cBut1) ON CLICK {|| Clicou(1)} SIZE 140,32 STYLE WS_TABSTOP
   @ 250,120 BUTTON HB_OemToAnsi(cBut2) ON CLICK {|| Clicou(2)} SIZE 140,32
   @ 430,120 BUTTON HB_OemToAnsi(cBut3) ON CLICK {|| Clicou(3')} SIZE 140,32
   ACTIVATE DIALOG oWnd
RETURN Nil

FUNCTION Clicou
PARA nResp
nValret:=0
IF nResp=1
   EndDialog()
   nValRet:=1
ELSEIF nResp=2
   EndDialog()
   nValRet:=2
ELSE
   EndDialog()
   nValRet:=3
ENDIF
RETURN nValRet

FUNCTION Info(cMensagem,cTitulo)
DEFAULT cTitulo TO "Aviso do Sistema"
RETURN MsgInfo(HB_OemToAnsi(cMensagem),Hb_OemToAnsi(cTitulo))

FUNCTION MsgNaoSim(cMensagem,cTitulo)
DEFAULT cTitulo TO "Aviso do Sistema"
RETURN MsgNoYes(HB_OemToAnsi(cMensagem),Hb_OemToAnsi(cTitulo))

FUNCTION MsgSimNao(cMensagem,cTitulo)
DEFAULT cTitulo TO "Aviso do Sistema"
RETURN MsgYesNo(HB_OemToAnsi(cMensagem),Hb_OemToAnsi(cTitulo))

FUNCTION MsgPare(cMensagem,cTitulo)
DEFAULT cTitulo TO "Aviso do Sistema"
RETURN MsgStop(HB_OemToAnsi(cMensagem),Hb_OemToAnsi(cTitulo))

Func Teste9
Local oWnd
SetToolTipBalloon(.t.)
INIT DIALOG oWnd CLIPPER TITLE "Botão com Balão" ;
   AT 100,100 SIZE 140,100
   @ 20,20 BUTTON "Pare Aqui" ON CLICK {||MsgInfo("Passou o Mouse")} SIZE 100,40 ;
   TOOLTIP "Clique Aqui Para Fechar"
ACTIVATE DIALOG oWnd
Return Nil
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Problemas com Função

Mensagem por asimoes »

Amigos,

Verifiquei uma coisa passando a ponta do mouse bem nos limites do botão ele destaca, o curioso que a função MsgInfo não tem este problema.
O mouse pode ser passado no cento do botão que ele destaca.

Alguma luz?
:'(
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Problemas com Função

Mensagem por asimoes »

Amigos,

Outra informação com um só botão funciona, será que é um problema da HwGui?
Colocando um só botão na dialog funciona mais de 1 dá problema.

Código: Selecionar todos

  @ 70, 120 BUTTON HB_OemToAnsi(cBut1) ON CLICK {|| Clicou(1)} SIZE 140,32 STYLE WS_TABSTOP
  //@ 250,120 BUTTON HB_OemToAnsi(cBut2) ON CLICK {|| Clicou(2)} SIZE 140,32
  //@ 430,120 BUTTON HB_OemToAnsi(cBut3) ON CLICK {|| Clicou(3')} SIZE 140,32
[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Problemas com Função

Mensagem por asimoes »

Amigos,

O problema foi resolvido.

O problema estava @ 60, 50 SAY HB_OemToAnsi(cMensagem) SIZE 500,100 <- Aqui (diminui para 30)
A área do label estava sobrepondo a dos botões gerando o problema de foco.

[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Problemas com Função

Mensagem por sygecom »

Olá asimoes,
Acontece que antes do Basso, entrar rasgando com varias inovações que só veio a contribuir para a Hwgui e agradeço muito ele por isso, nção tinha uma IDE decente para desenhar as telas então se fazia tudo no Olho e na unha, alem do que antes o obejeto SAY, não tinha a opção de clique no SAY, então ele sempre se auto ajustava para não ficar assim por cima ! e Como nosso colega basso arrumou e melhorou a Hwgui como a IDE, então esse exemplo ficou imcompativel. Mas nada que uns pequeno detalhe não resolva. Boa sorte com sua migração ai !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder