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.