FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como se hace
Posts: 203
Joined: Tue Oct 11, 2005 02:17 PM
Como se hace
Posted: Mon Oct 09, 2017 05:10 PM
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 (fw): Select all Collapse
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 (fw): Select all Collapse
   bAction := {|| ::oDialogo:End()}
  REDEFINE BTNBMP .... ACTION Eval(bAction)

Lo que pretendo es definir la accion sin tener que definir el codeblock

gracias.
Posts: 174
Joined: Sat Feb 23, 2013 10:04 AM
Re: Como se hace
Posted: Mon Oct 09, 2017 05:32 PM
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 (fw): Select all Collapse
METHOD VerDialogo
   Local oSelf:= Self
   DEFINE DIALOGO ::oDialogo
   REDEFINE BTNBMP .... ACTION oSelf:oDialgo:End()
Posts: 203
Joined: Tue Oct 11, 2005 02:17 PM
Re: Como se hace
Posted: Tue Oct 10, 2017 03:31 PM

gracias

Continue the discussion