Page 1 of 1
BTNBMP design ?
Posted: Wed Dec 12, 2007 12:38 pm
by FWHISHOW
Antonio, a classe BTNBMP não conta com a opção DESIGN?
Obrigado
Posted: Wed Dec 12, 2007 1:07 pm
by Antonio Linares
oBtnBmp:lDrag := .T.
Posted: Wed Dec 12, 2007 1:11 pm
by FWHISHOW
Grato Antonio
Posted: Wed Dec 12, 2007 1:27 pm
by FWHISHOW
Antonio, é possível executar uma ação em um objeto SAY (design) depois de clicar sobre o mesmo e arrastar, ou seja, ao soltar o botão do mouse?
Acontece que tenho que dar um refresh no objeto depois de arrastar!
Obrigado
Posted: Wed Dec 12, 2007 1:59 pm
by Antonio Linares
Prueba a usar oSay:bLButtonUp = { || ... }
Posted: Wed Dec 12, 2007 4:02 pm
by FWHISHOW
Obrigado Antonio, mais não funcionou!
for i:=1 to len(PoBtc)
@ lin,col say PoBtc OF oWndp DESIGN PIXEL SIZE 100,20 BORDER
PoBtc:bLButtonUp = { || PoBtc:refresh(),msg("aqui") }
next
Grato
Posted: Wed Dec 12, 2007 7:12 pm
by Antonio Linares
Asi no lo puedes hacer. Tienes que usar "detached locals":
Code: Select all
for i:=1 to len(PoBtc)
@ lin,col say PoBtc[i] OF oWndp DESIGN PIXEL SIZE 100,20 BORDER
PoBtc[i]:bLButtonUp = GenBlock( PoBtc, i )
next
...
static function GenBlock( PoBtc, i )
return { || PoBtc[ i ]:Refresh(), MsgInfo( "aqui" ) }
Posted: Wed Dec 12, 2007 7:40 pm
by FWHISHOW
desculpe Antonio mais também não funciona!
Obrigado
Posted: Wed Dec 12, 2007 9:19 pm
by Antonio Linares
Pruébalo así:
Code: Select all
for i:=1 to len(PoBtc)
@ lin,col say PoBtc[i] PROMPT "say" OF oWndp DESIGN PIXEL SIZE 100,20 BORDER
PoBtc[i]:bLButtonUp = GenBlock( PoBtc, i )
PoBtc[i]:lWantClick = .T.
next
...
static function GenBlock( PoBtc, i )
return { || PoBtc[ i ]:Refresh(), MsgInfo( "aqui" ) }
Posted: Thu Dec 13, 2007 10:13 am
by FWHISHOW
Mais uma vez me desculpe, ainda não funciona! Acredito que seja algo com o objeto say.
Obrigado!
Posted: Thu Dec 13, 2007 10:59 am
by Antonio Linares
Tienes que hacer una modificación en la Clase TControl para poder procesar bLButtonUp estando en modo diseño:
Code: Select all
METHOD LButtonUp( nRow, nCol, nKeyFlags ) CLASS TControl
...
if GetFocus() != ::hWnd
SetFocus( ::hWnd )
endif
if ! Empty( ::bLButtonUp ) // Nuevo!
Eval( ::bLButtonUp, nRow, nCol, nKeyFlags, Self ) // Nuevo!
endif // Nuevo!
return 0
...
Posted: Thu Dec 13, 2007 12:02 pm
by FWHISHOW
Perfeito Antonio... Funcionou perfeitamente!
Estas correções já estão na nova versão do FW?
Muito Obrigado!
Posted: Sat Dec 15, 2007 3:24 pm
by Rossine
Olá Antonio,
No meu caso, uso assim e funciona perfeitamente.
Code: Select all
...
if GetFocus() != ::hWnd
SetFocus( ::hWnd )
endif
** return 0 <<-- Tirar esta linha
endif
return Super:LButtonUp( nRow, nCol, nKeyFlags )
Isto estaria correto também ?
Abraços,
Rossine.
Posted: Sat Dec 15, 2007 4:08 pm
by Antonio Linares
Rossine,
> Isto estaria correto também ?
No, porque en la Clase TWindow se vuelve a evaluar.
Por eso hay que usar return 0, para que no se llame a Super:LButtonUp
Posted: Sat Dec 15, 2007 6:15 pm
by Rossine
OK Antonio
Obrigado pela explicação.
Rossine.