Como se hace

Post Reply
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Como se hace

Post by miarcod »

Esto debe ser una tonteria, pero no acabo de encontrar la forma de hacerlo

Si creo una clase y uno de los metodos crea un dialogo, como hago para definir la acción de un boton, ahora lo estoy haciendo con codeblocks pero eso me obliga a definir variables

Code: Select all

CLASS XXX
   METHOD VerDialogo()
ENDCLASS

METHOD VerDialogo
   DEFINE DIALOGO ::oDialogo
   REDEFINE BTNBMP .... ACTION ::oDialgo:End()
...
 
Si lo hago así se ejecuta el metodo End() de una data del BTNBMP que no existe y rompe, para que se ejecute lo defino

Code: Select all

   bAction := {|| ::oDialogo:End()}
  REDEFINE BTNBMP .... ACTION Eval(bAction)
 
Lo que pretendo es definir la accion sin tener que definir el codeblock

gracias.
Antonio Mart.
Posts: 174
Joined: Sat Feb 23, 2013 10:04 am

Re: Como se hace

Post by Antonio Mart. »

Si no me equivoco el problema lo tienes en la declaracion implicita de Self como parametro del codeblock adjunto a la clausula ACTION.

Para que te funcione bien hazlo asi:

Code: Select all

METHOD VerDialogo
   Local oSelf:= Self
   DEFINE DIALOGO ::oDialogo
   REDEFINE BTNBMP .... ACTION oSelf:oDialgo:End()
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Re: Como se hace

Post by miarcod »

gracias
Post Reply