Problema con ToolBar y TbMenu

Post Reply
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Problema con ToolBar y TbMenu

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

José Luis,

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

Antonio Linares
www.fivetechsoft.com
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Post 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,
Leonel
Posts: 11
Joined: Wed Jun 20, 2007 9:22 pm

Prueba de esta manera.

Post 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ú.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post 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
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Post Reply