Page 1 of 1

Problema con ToolBar y TbMenu

Posted: Fri Dec 07, 2007 1:20 pm
by José Luis Sánchez
Hola,
tengo una toolbar conv arios botones y un tbmenu que despliega un menu al hacer click en la parte de la lista desplegable. Quiero que cuando se hace click sobre el botón me despliegue el mismo menu, pero no hay manera. ¿ Alguien sabe como se hace ?

Saludos,
José Luis Sánchez

Posted: Fri Dec 07, 2007 2:48 pm
by Antonio Linares
José Luis,

Aqui está el código y un ejemplo:
http://fivetechsoft.com/forums/viewtopic.php?t=8609

Posted: Fri Dec 07, 2007 4:03 pm
by José Luis Sánchez
Antonio, con una buttonbar lo tengo hecho. El problema de la toolbar es que no encuentro la manera de pasarle la referencia del objeto botón para luego calcular las coordenadas. En las toolbar, no hay referencia al objeto botón por ningun lado, o eso creo.

Saludos,

Prueba de esta manera.

Posted: Thu Dec 27, 2007 4:30 pm
by Leonel
DEFINE TBBUTTON OF oToolBar5 ACTION (MEst(oWnd)) TOOLTIP "Informes Estadisticos"
oToolBar5:AddSeparator()
DEFINE TBBUTTON OF oToolBar5 ACTION (MCCC(oWnd)) TOOLTIP "Cuentas Corrientes"
oToolBar5:AddSeparator()
DEFINE TBBUTTON OF oToolBar5 ACTION (MLAF(oWnd)) TOOLTIP "Libro Auxiliar de Facturacion"
oToolBar5:AddSeparator()

*------------------------------------------------------------------------------
Function MEst(oMainWnd )
LOCAL oMenu, nRow:=65, nCol:=Menos1, aPos := GetCursorPos()
Local cClrDegrIni,cClrDegrFin
Local cClrSelIni,cClrSelFin,cClrSelTxt,cClrSelBor
Local cClrMenu,cClrMenuTxt
IF _Ancho=768
nCol:=Ltb3+130
ElseIf _Ancho=1024
nCol:=LTB3+Ltb4+44
ENDIF
cClrDegrFin := LightColor(60,getsysColor(2))
cClrDegrIni:= LightColor(230,cClrDegrFin)
cColorPan := LightColor(150,cClrDegrFin)
cClrMenu:= GetSysColor(4) //RGB(224,255,255)
cClrMenuTxt:= CLR_BLACK
cClrSelFin:= RGB(255,238,194)
cClrSelIni:= RGB(255,238,194)
cClrSelTxt:= CLR_BLACK
cClrSelBor:= CLR_BLACK
MENU oMenu POPUP ;
COLORMENU cClrMenu,cClrMenuTxt ;
COLORBMP cClrDegrFin,cClrDegrIni;
COLORSELECT cClrDegrIni,cClrDegrFin,cClrSelTxt;
COLORSEPARATOR cClrSelBor
MenuItem oMIt[1] Prompt "Ventas" Action (TT_SV())
Separator
MenuItem oMIt[2] Prompt "Cliente" Action (EVXC())
Separator
MenuItem oMIt[3] Prompt "Entradas Valorizadas"
Separator
MenuItem oMIt[4] Prompt "Compras por Producto"
Separator
MenuItem oMIt[5] Prompt "Compras por Bloques"
Separator
MenuItem oMIt[6] Prompt "Precios de Compra"
Separator
MenuItem oMIt[7] Prompt "Consolidado I.N.E."
Separator
MenuItem oMIt[8] Prompt "Variaciones de Precio"
Separator
MenuItem oMIt[9] Prompt "Diferencias de PRecio"
EndMenu
ACTIVATE MENU oMenu AT nRow, nCol OF oMainWnd
oMainWnd:Refresh()
RETURN NIL
*----------------------------------------------------------------------------*
Function MCCC(oMainWnd )
LOCAL oMenu, nRow:=65, nCol:=Menos1, aPos := GetCursorPos()
Local cClrDegrIni,cClrDegrFin
Local cClrSelIni,cClrSelFin,cClrSelTxt,cClrSelBor
Local cClrMenu,cClrMenuTxt
IF _Ancho=768
nCol:=Ltb3+166
ElseIf _Ancho=1024
nCol:=LTB3+Ltb4+81
ENDIF
cClrDegrFin := LightColor(60,getsysColor(2))
cClrDegrIni:= LightColor(230,cClrDegrFin)
cColorPan := LightColor(150,cClrDegrFin)
cClrMenu:= GetSysColor(4) //RGB(224,255,255)
cClrMenuTxt:= CLR_BLACK
cClrSelFin:= RGB(255,238,194)
cClrSelIni:= RGB(255,238,194)
cClrSelTxt:= CLR_BLACK
cClrSelBor:= CLR_BLACK
MENU oMenu POPUP ;
COLORMENU cClrMenu,cClrMenuTxt ;
COLORBMP cClrDegrFin,cClrDegrIni;
COLORSELECT cClrDegrIni,cClrDegrFin,cClrSelTxt;
COLORSEPARATOR cClrSelBor //cClrDegrFin
MenuItem "Cuenta Corriente Individual" Action (Execute[16]:=.T.,Filter_Cta(oWnd,oMenuIt[49],Execute)) When (!Execute[16])
Separator
MenuItem "Cuenta Corriente General" Action (CCGC())
ENDMENU
ACTIVATE MENU oMenu AT nRow, nCol OF oMainWnd
oMainWnd:Refresh()
RETURN NIL
*----------------------------------------------------------------------------*
Function MLAF(oMainWnd)
LOCAL oMenu, nRow:=65, nCol:=Menos1, aPos := GetCursorPos()
Local cClrDegrIni,cClrDegrFin
Local cClrSelIni,cClrSelFin,cClrSelTxt,cClrSelBor
Local cClrMenu,cClrMenuTxt
IF _Ancho=768
nCol:=Ltb3+202
ElseIf _Ancho=1024
nCol:=LTB3+Ltb4+118
ENDIF
cClrDegrFin := LightColor(60,getsysColor(2))
cClrDegrIni:= LightColor(230,cClrDegrFin)
cColorPan := LightColor(150,cClrDegrFin)
cClrMenu:= GetSysColor(4) //RGB(224,255,255)
cClrMenuTxt:= CLR_BLACK
cClrSelFin:= RGB(255,238,194)
cClrSelIni:= RGB(255,238,194)
cClrSelTxt:= CLR_BLACK
cClrSelBor:= CLR_BLACK
MENU oMenu POPUP ;
COLORMENU cClrMenu,cClrMenuTxt ;
COLORBMP cClrDegrFin,cClrDegrIni;
COLORSELECT cClrDegrIni,cClrDegrFin,cClrSelTxt;
COLORSEPARATOR cClrSelBor
MenuItem oMIt[18] Prompt "Borrador Libro Auxiliar" ACTION (Execute[18]:=.T.,Libro_Auxf(1,oMenuIt[52],Execute,oWnd)) When (!Execute[18])
Separator
MenuItem oMIt[19] Prompt "Original S.I.I." ACTION (Execute[19]:=.T.,Libro_Auxf(2,oMenuIt[53],Execute,oWnd)) When (!Execute[19])
Separator
MenuItem oMIt[20] Prompt "Foliación de Hojas" ACTION (Execute[20]:=.T.,Libro_Auxf(3,oMenuIt[54],Execute,oWnd)) When (!Execute[20])
EndMenu
ACTIVATE MENU oMenu AT nRow, nCol OF oMainWnd
oMainWnd:Refresh()
RETURN NIL
*----------------------------------------------------------------------

Al menos a mi, me funciona bastante bien, sólo hayn que jugar con la posición de los botones para darle las coordenadas al menú.

Posted: Thu Dec 27, 2007 6:03 pm
by Antonio Linares
José Luis,

Se me había pasado esta respuesta tuya. Revisa lo que te comenta Leonel y sino buscamos otra forma, gracias!

Posted: Thu Dec 27, 2007 9:22 pm
by Patricio Avalos Aguirre
Hola Jose Luis

Revisa este post http://fivetechsoft.com/forums/viewtopi ... highlight=

baja el archivo acceso.zip, descomprimelo y luego ejecutalo
dbf\wcta.exe ahi esta como hacerlo..

Espero que te sirva

Posted: Fri Dec 28, 2007 9:57 pm
by Leonel