Creando Toolbar desde Codigo
Publicado: Jue Abr 07, 2011 3:13 pm
Estimados amigos
He creado una toolbar desde codigo sin problemas asignado el evento onClick
de la siguiente forma:
-----
WITH OBJECT ::oToolBar
::oHelp := :AddItem( "", 1, "Ayuda", .T. )
::oHelp:OnClick := { || ShowHelp("1") }
END
-----
En esta oportunidad necesito crear una barra de botones a partir de una base
de datos, para ello tengo el siguiente codigo ejemplo
-----
aData := { { 1, "Ayuda", "::GoHelp()", 1, 1 }, ;
{ 2, "-", NULL, 1, 0 } ;
{ 3, "Videos", "::GoVideo()", 1, 2 } ;
}
FOR EACH oLnk IN aData
WITH OBJECT ::oToolBar
IF oLnk[2] = "-"
:AddSeparator()
ELSE
bOnClick := "{ || " + oLnk[3] + " }"
oBtn := :AddItem( "", oLnk[5], oLnk[2], .T. )
oBtn:OnClick := Eval(&(bOnClick))
ENDIF
END
NEXT
-----
Este codigo me genera un error que indica que no existe la variable self.
Estoy de acuerdo con eso ya que estoy llamando a metodos de una clase a
traves de macrosustitución. Si creo el bloque de codigo sin macrosustitución
funciona correcto (como en el primer ejemplo) pero de esta manera no. De que
forma deberia implementar el evento Onclick?
Gracias
--
Saludos
Williams Pacheco
He creado una toolbar desde codigo sin problemas asignado el evento onClick
de la siguiente forma:
-----
WITH OBJECT ::oToolBar
::oHelp := :AddItem( "", 1, "Ayuda", .T. )
::oHelp:OnClick := { || ShowHelp("1") }
END
-----
En esta oportunidad necesito crear una barra de botones a partir de una base
de datos, para ello tengo el siguiente codigo ejemplo
-----
aData := { { 1, "Ayuda", "::GoHelp()", 1, 1 }, ;
{ 2, "-", NULL, 1, 0 } ;
{ 3, "Videos", "::GoVideo()", 1, 2 } ;
}
FOR EACH oLnk IN aData
WITH OBJECT ::oToolBar
IF oLnk[2] = "-"
:AddSeparator()
ELSE
bOnClick := "{ || " + oLnk[3] + " }"
oBtn := :AddItem( "", oLnk[5], oLnk[2], .T. )
oBtn:OnClick := Eval(&(bOnClick))
ENDIF
END
NEXT
-----
Este codigo me genera un error que indica que no existe la variable self.
Estoy de acuerdo con eso ya que estoy llamando a metodos de una clase a
traves de macrosustitución. Si creo el bloque de codigo sin macrosustitución
funciona correcto (como en el primer ejemplo) pero de esta manera no. De que
forma deberia implementar el evento Onclick?
Gracias
--
Saludos
Williams Pacheco