Olá companheiros,
o sistema está "quaaaaaaaase" pronto.
Então é hora de fazer testes maciços e retirar eventuais erros gramaticais ou estéticos nas telas e bugs renitentes.
Há algum tempo, postei um tópico relativo ao foco do mouse em gets tbrowse e pushbutton.
Todavia, não objetive respostas.
Provavelmente, é porque o bug não foi solucionado.
O erro refere-se a segunda operação do mouse numa sequência de gets.
Exemplificando.
Get tbrowse
Get Pushbutton
Get Pushbutton
Get Pushbutton
Get Pushbutton
Read
Quando acesso a função/procedure pela primera vez, ao clicar com o mouse no objeto tbrowse ou opções de pushbutton, tudo funciona certinho.
Entretanto, ao executar a ação de pushbutton e o foco retornar para o botão, os demais gets, através do mouse, ficam inacessíveis.
Se após a primeira operação realizada com acionamento do terceiro botão (pushbutton) quero efetuar a segunda operação com acionamento do primeiro botão com o mouse, o foco simplesmente não transfere ou, em alguns casos, vai para o segundo botão etc.
Já tentei solucionar o problema usando GetList pública, private e local, mas não funcionou.
Então, como gosto das telas console, vocês acham melhor eu abandonar o uso do mouse ou insistir e aguardar a solução xHarbour ou através dos companheiros?
Obrigado por manifestar.
MGS
Foco do mouse no get
Moderador: Moderadores
-
culik
Marcelo
Preciso de um codigo que demostre isso para estar corrigido antes da nova versao sair
[]s
Luiz
www.xharbour.com.br
Preciso de um codigo que demostre isso para estar corrigido antes da nova versao sair
[]s
Luiz
www.xharbour.com.br
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Culik, conforme pedido, segue prg que, executado, apresenta o bug noticiado no tópico.
Atenciosamente.
MGS
Código: Selecionar todos
FUNCTION MAIN ()
LOCAL CTela :=SAVESCREEN(00,00,24,79)
LOCAL aJanela :={03,00,21,79}
LOCAL GetList :={}
LOCAL aMatriz :=ARRAY(100)
LOCAL nElemento
LOCAL uTbrw
LOCAL lLista
LOCAL lVolta
SET(39,159) //ativa mouse
FOR EACH nElemento IN aMatriz
nElemento:="TESTE TESTE TESTE TESTE TESTE TESTE TESTE"
NEXT
oList:=TBRWMATR(aJanela,aMatriz)
oTbrw:=oList
CRIATELA(22,00,24,79)
@ 03,00,21,79 GET uTbrw TBROWSE oTbrw;
VALID {||IF(LASTKEY() == 13,READKILL(.T.),.T.)}
@ 23,01 GET lLista PUSHBUTTON CAPTION "&LISTA ";
WHEN {||oTbrw:FORCESTABLE(),.T.};
STATE {||Alert("lista")};
COLOR "N/W,G+/N,G+/N,G+/N";
STYLE "[]"
@ 23,13 GET lVolta PUSHBUTTON CAPTION "&VOLTA ";
WHEN {||oTbrw:FORCESTABLE(),.T.};
STATE {||Alert("volta")};
COLOR "N/W,G+/N,G+/N,G+/N";
STYLE "[]"
READ
RESTSCREEN(00,00,24,79,cTela)
RETURN
//---------------------------------
FUNCTION TBRWMATR(aCoor,aMatr)
* | |
*JANELA___________| |
*OBJETO_________________|
LOCAL nPointer:=1
LOCAL oTbrw
LOCAL oTbc
oTbrw:=TBROWSENEW(aCoor[1],aCoor[2],aCoor[3],aCoor[4])
oTbrw:COLORSPEC:= "W+/B,G+/N,R+/B,R/W,G+/B,G/W"
oTbrw:HEADSEP := "ÍÍÍ"
oTbrw:COLSEP := " ³ "
oTbrw:FOOTSEP := "ÍÍÍ"
oTbc:=TBCOLUMNNEW("",{|x|IF(x <> NIL,aMatr[nPointer]:= x,aMatr[nPointer])})
oTbc:WIDTH:=80
oTbrw:ADDCOLUMN(oTbc)
oTbrw:GOTOPBLOCK :={| |nPointer:=1}
oTbrw:GOBOTTOMBLOCK:={| |nPointer:=LEN(aMatr)}
oTbrw:SKIPBLOCK :={|x|ARRAYSKIPER(x,@nPointer,LEN(aMatr))}
RETURN oTbrw
//---------------------------------
FUNCTION ARRAYSKIPER(n,nPointer,nElementos)
LOCAL nSalvo := nPointer
IF ( n > 0 )
nPointer:= min (nPointer + n, nElementos)
ELSE
nPointer:= max (1, nPointer + n)
ENDIF
RETURN (nPointer-nSalvo)
//---------------------------------
PROCEDURE CRIATELA(Li,Ci,Lf,Cf)
LOCAL cCor:=SETCOLOR("W+/W")
@ Li,Ci SAY 'Ú'
@ Li,Ci+1 SAY REPL('Ä',(Cf-(Ci+1)))
SETCOLOR("N/W")
@ Li,Cf SAY '¿'
FOR i=1 TO (Lf-Li)
SETCOLOR("W+/W")
@ Li+i,Ci SAY '³'
@ Li+i,Ci+1 SAY REPL(' ',(Cf-(Ci+1)))
SETCOLOR("N/W")
@ Li+i,Cf SAY '³'
NEXT
SETCOLOR("N/W")
@ Lf,Ci SAY 'À'
@ Lf,Ci+1 SAY REPL('Ä',(Cf-(Ci+1)))
@ Lf,Cf SAY 'Ù'
SETCOLOR(cCor)
RETURN
//---------------------------------MGS
-
culik