Problema con ToolBar y TbMenu

Problema con ToolBar y TbMenu

Postby José Luis Sánchez » Fri Dec 07, 2007 1:20 pm

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
José Luis Sánchez
 
Posts: 539
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Postby Antonio Linares » Fri Dec 07, 2007 2:48 pm

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

Postby José Luis Sánchez » Fri Dec 07, 2007 4:03 pm

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,
User avatar
José Luis Sánchez
 
Posts: 539
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Prueba de esta manera.

Postby Leonel » Thu Dec 27, 2007 4:30 pm

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

Postby Antonio Linares » Thu Dec 27, 2007 6:03 pm

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

Postby Patricio Avalos Aguirre » Thu Dec 27, 2007 9:22 pm

Hola Jose Luis

Revisa este post http://fivetechsoft.com/forums/viewtopic.php?t=5205&start=0&postdays=0&postorder=asc&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
User avatar
Patricio Avalos Aguirre
 
Posts: 1059
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile



Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 89 guests