Problema con bLClicked

Post Reply
triumvirato
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Problema con bLClicked

Post by triumvirato »

Hola compañeros,

El siguiente trocito de código, no consigo que me funcione correctamente (ver línea de comentada):

Code: Select all

   DEFINE WINDOW oWndChild MDICHILD OF oWndPrinc ;
          FROM 5,5 TO 6,6;
          COLOR "N/W" ;
          BORDER NONE 
   oWndChild:bGotFocus  = { || oDlg:SetFocus() }

   DEFINE DIALOG oDlg RESOURCE "Articulos" OF oWndChild
   
   REDEFINE SAY oSayTec_Nom PROMPT CargaFicTec( oArt ) ID 500 OF oDlg UPDATE

   oSayTec_Nom:SetColor( CLR_WHITE, GetSysColor( COLOR_BTNFACE ) ) 
   oSayTec_Nom:lWantClick := .t.
   oSayTec_Nom:bLClicked := { || MsgInfo("TAMOS") }        // ESTA LINEA NO SE EJECUTA AL HACER CLIC SOBRE oSayTec_Nom
   oSayTec_Nom:oCursor := oCursorHand

   for n = 1 to Len( oDlg:aControls )
      oDlg:aControls[ n ]:bLClicked = GenBlock( oWndChild, oDlg:aControls[ n ] )
   next      

   ACTIVATE DIALOG oDlg NOWAIT CENTERED;
      ON INIT ( oDlg:Move( 0, 0 ) );
      VALID  ( oWndChild:End(), .t. )


   oWndChild:nWidth := oDlg:nWidth+7
   oWndChild:nHeight := oDlg:nHeight+32

   ACTIVATE WINDOW oWndChild ON INIT oWndPrinc:paint()

El funcionamiento debería ser una al estilo de un link en una página web, es decir, es un texto que aparece de distinto color, al pasar por encima de el, el cursor cambia y al hacer click sobre el, ejecuta una función, en este caso el MsgInfo("RAMOS").
Alguna sugerencia? algún error a simple vista de esos que tenemos los novatos?

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

Re: Problema con bLClicked

Post by Antonio Linares »

David,

En ese bucle for next que tienes a continuación le estás cambiando nuevamente el valor bLClicked :-)

Haz la asignación de BLClicked después del bucle for next
regards, saludos

Antonio Linares
www.fivetechsoft.com
triumvirato
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Re: Problema con bLClicked

Post by triumvirato »

Antonio,

Error de novato, claro!.
Cómo puedo saber qué control es oSayTec_nom en el array de controles del diálogo para hacer algo así?:

Code: Select all

   oSayTec_Nom:bLClicked := { || ( GenBlock( oWndChild, oDlg:aControls[ n ] ), MsgInfo("TAMOS") ) }
GRACIAS!
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Problema con bLClicked

Post by Antonio Linares »

David,

Al ser el primer control redefinido, está en la posición 1 (uno)
regards, saludos

Antonio Linares
www.fivetechsoft.com
triumvirato
Posts: 199
Joined: Tue Apr 22, 2008 9:54 am
Location: Valladolid, Spain.

Re: Problema con bLClicked

Post by triumvirato »

Gracias Antonio!
Post Reply