BTNBMP design ?

Post Reply
FWHISHOW
Posts: 80
Joined: Thu Nov 29, 2007 2:01 pm

BTNBMP design ?

Post by FWHISHOW »

Antonio, a classe BTNBMP não conta com a opção DESIGN?


Obrigado
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

oBtnBmp:lDrag := .T.
regards, saludos

Antonio Linares
www.fivetechsoft.com
FWHISHOW
Posts: 80
Joined: Thu Nov 29, 2007 2:01 pm

Post by FWHISHOW »

Grato Antonio
FWHISHOW
Posts: 80
Joined: Thu Nov 29, 2007 2:01 pm

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Prueba a usar oSay:bLButtonUp = { || ... }
regards, saludos

Antonio Linares
www.fivetechsoft.com
FWHISHOW
Posts: 80
Joined: Thu Nov 29, 2007 2:01 pm

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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" ) }
regards, saludos

Antonio Linares
www.fivetechsoft.com
FWHISHOW
Posts: 80
Joined: Thu Nov 29, 2007 2:01 pm

Post by FWHISHOW »

desculpe Antonio mais também não funciona!

Obrigado
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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" ) }
regards, saludos

Antonio Linares
www.fivetechsoft.com
FWHISHOW
Posts: 80
Joined: Thu Nov 29, 2007 2:01 pm

Post by FWHISHOW »

Mais uma vez me desculpe, ainda não funciona! Acredito que seja algo com o objeto say.



Obrigado!
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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
...
regards, saludos

Antonio Linares
www.fivetechsoft.com
FWHISHOW
Posts: 80
Joined: Thu Nov 29, 2007 2:01 pm

Post by FWHISHOW »

Perfeito Antonio... Funcionou perfeitamente!

Estas correções já estão na nova versão do FW?

Muito Obrigado!
Rossine
Posts: 343
Joined: Tue Oct 11, 2005 11:33 am

Post 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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Rossine
Posts: 343
Joined: Tue Oct 11, 2005 11:33 am

Post by Rossine »

OK Antonio :)

Obrigado pela explicação.

Rossine.
Post Reply