Página 1 de 1

Problemas com Função

Enviado: 15 Mar 2009 19:55
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

Re: Problemas com Função

Enviado: 15 Mar 2009 20:52
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

Re: Problemas com Função

Enviado: 15 Mar 2009 22:14
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

Re: Problemas com Função

Enviado: 15 Mar 2009 23:45
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

Re: Problemas com Função

Enviado: 19 Mar 2009 11:50
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 !!!