Página 1 de 1

Creando Toolbar desde Codigo

Publicado: Jue Abr 07, 2011 3:13 pm
por Williams Pacheco
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

Creando Toolbar desde Codigo

Publicado: Jue Abr 07, 2011 6:15 pm
por zeasoftware
Yo lo uso asi:
With Object :AddItem("&Nota Venta", ID_NOTAS_VTAS, "Notas de Venta" )
:lAutoSize := AppData:lBarwName
//:nID_Check := ID_NOTAS_VTAS
//:cID_Check := "Notas de Venta"
:OnClick := {|| ::Launch(TNotasVenta())} //"NotasVenta"
//:OnCheckState := {|| AppData:lConected .And.
AppData:lAlmacenConect .And. ;
// AppData:TAppUser:ItemEnabled(
ID_NOTAS_VTAS ) }
End With
Saludos..
"Williams Pacheco" escribió en el mensaje de
noticias:4d9db898$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
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
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com

Creando Toolbar desde Codigo

Publicado: Vie Abr 08, 2011 3:25 pm
por Williams Pacheco
Gracias Ramon
Como te puedes dar cuenta, el método que indicas es similar al que yo coloco
en la primera parte del email. Entiendo que de esa forma el bloque de codigo
se resuelve en tiempo de compilación, cosa que no pasa de la forma que
indico en el segundo ejemplo
Mi intención es lograr crear el llamado a un método de la clase a través de
macrosustitucion (o algo similar), esto es porque el "action" del evento lo
cargo desde la base de datos.
Alguien tiene otra solución?
Saludos
WP
"Ramón Zea" <zeasoftware@hotmail.com> wrote in message
news:[email=4d9de32a@svctag-j7w3v3j....]4d9de32a@svctag-j7w3v3j....[/email]
> Yo lo uso asi:
>
> With Object :AddItem("&Nota Venta", ID_NOTAS_VTAS, "Notas de
> Venta" )
> :lAutoSize := AppData:lBarwName
> //:nID_Check := ID_NOTAS_VTAS
> //:cID_Check := "Notas de Venta"
> :OnClick := {|| ::Launch(TNotasVenta())} //"NotasVenta"
> //:OnCheckState := {|| AppData:lConected .And.
> AppData:lAlmacenConect .And. ;
> // AppData:TAppUser:ItemEnabled(
> ID_NOTAS_VTAS ) }
> End With
>
>
> Saludos..
>
>
> "Williams Pacheco" escribió en el mensaje de
> noticias:4d9db898$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>
> 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
>
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@hotmail.com
> zeasoft.movil@hotmail.com