Page 1 of 1

Error al compilar

Posted: Thu Nov 10, 2005 3:57 am
by Willi Quintana
Hola Amigos,,,
Debo controlar 60 botones, asi que lo hago de esta manera:

FOR nCont := 1 TO 60
REDEFINE BTNBMP oMesa[nCont] ;
RESOURCE "VACIA" NOBORDER ;
ID (200 + nCont) OF oFld:aDialogs[1] ;
ACTION ( OpcionMesa(1, ::nId - 200) )
NEXT nCont
oMesa[::nId]:bRClicked := {|nRow,nCol| OpcionMesa(2, ::nId - 200)}

aqui al compilar sale un error, al parecer no acepta ::nId, ::nId me devuelve el numero del identificador del btnbmp, asi se que btnbmp he presionado...

Alguna solucion??

Posted: Thu Nov 10, 2005 9:01 pm
by Antonio Linares
Willi,

Que error te sale ?

Posted: Thu Nov 10, 2005 9:15 pm
by Willi Quintana
Ups. Sorry, olvide mencionarlos

En este codigo.

FOR nCont := 1 TO 60
REDEFINE BTNBMP oMesa[nCont] ;
RESOURCE "VACIA" NOBORDER ;
ID (200 + nCont) OF oDls ;
ACTION ( OpcionMesa(1, ::nId - 200) )
NEXT nCont
oMesa[::nId]:bRClicked := {|nRow,nCol| OpcionMesa(2, ::nId - 200)}


El error sale en la linea roja

WARNING c1003 AMBIGUOS REFERENCE "SELF"

Salu2
Willi

Posted: Fri Nov 11, 2005 12:51 am
by Antonio Linares
Willi,

Prueba esto:

SetRClicked( oMesa )

oMesa[ oMesa:nId ]:bRClicked = { | nRow, nCol | OpcionMesa( 2, oMesa:nId - 200 ) }

return nil

y llama a SetRClicked() antes del NEXT

Si no funcionase así, prueba con:

SetRClicked( oMesa, nCount )

oMesa[ nCount ]:bRClicked = { | nRow, nCol | OpcionMesa( 2, nCount - 200 ) }

Esto es a lo que se llama "detached locals" (variables locales que quedan "atrapadas" dentro de un codeblock :)