FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour MEnu POPUP (Ayuda) - Solucionado
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
MEnu POPUP (Ayuda) - Solucionado
Posted: Tue May 10, 2011 10:45 PM
Menu Tengo el menu popup como es la instrucion para que el menu salga donde este el puntero de mous.

La nRow y nCol dele tomar la posicion de la coordenada del puntore de maus. Alguien sabe cual es.
Por ejemplo en clipper era col(), row() si no estoy mal.

ACTIVATE DIALOG oDlg16 CENTERED VALID (lExit) ON PAINT gradpaint2(oDlg16,hDC,dlg_dsv1);
ON RIGHT CLICK ShowPopUp(oDlg16,MatValid,@aContl,oBar12,nRow, nCol)
Cuano se hace el llamado del menu popup me lo muestra en la misma posicion donde esta el puntero del maus. ver figura.
de esta manera lo necesito

http://imageshack.us/photo/my-images/847/dibujo1c.jpg/
" alt="" loading="lazy">

Tengo una clase y hago el llamado de esta manera
::bRClicked := {|| ::ShowPopu1(nRow, nCol) }
si lo carga pero no me lo muestra en la posicion donde esta el puntero de maus.

http://imageshack.us/photo/my-images/854/dibujo2ee.jpg/
" alt="" loading="lazy">

Code (fw): Select all Collapse
::oWdlcx:bRClicked := {|| ::ShowPopu1(nRow, nCol) } 

..
..



ETHOD  ShowPopu1(nRow, nCol) CLASS TBarDLG //Func ShowPopup(oDlg01,MatValid,aContl,oBar12,nRow,nCol) //sampels fwbrow
Local oPopup,abAction 
   if !::l2007;MENU oPopup POPUP 2007;else;MENU oPopup POPUP ;endif
   FOR nFor := 1 TO ::nLen
     MENUITEM ::aBmppop[nFor] PROMPT ::abPrompt[ nFor ] RESOURCE ::acBitmap[nFor] ACTION ::abAction[ nFor ];
     BLOCK ::abAction[ nFor ]
   Next
   ENDMENU
   ACTIVATE POPUP oPopup AT nRow, nCol OF ::oWdlcx  

return nil
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: MEnu POPUP (Ayuda)
Posted: Wed May 11, 2011 03:26 AM

A ver si te entendí bien.

Mira este ejemplo (desde un oBrw en un dialog desde recursos):

oBrw2:bRClicked := {|nRow,nCol| PopMesa(oDlg,oLbx,cDirMesas,@aBmp,@aMesas,@aPathMesas,bAreaMesa,@nTotal,nRecno,dFecha,nTasaus, oBrw2,nRow,nCol) }

//--------------------------------------------------------------------------------
Function PopMesa(oDlg,oLbx,cDirMesas,aBmp,aMesas,aPathMesas,bAreaMesa,nTotal,nRecno,dFecha,nTasaus, oBrw2,nRow,nCol)
local oMenu

MENU oMenu POPUP 2007
MENUITEM "&Ver productos resumidos "+MyMesa ;
ACTION ( VerProdResu(MyMesa),;
(MyMesa)->(dbgoBottom()),oBrw2:Refresh() )

MENUITEM "&Trasladar al Cliente a otra mesa desocupada" ;
      ACTION ( TraslaMesa(oBrw2,oLbx,cDirMesas,@aMesas,@aBmp,@aPathMesas,bAreaMesa),;
               RefresqueBrw2(@nTotal,oBrw2) )
ENDMENU
ACTIVATE POPUP oMenu OF oBrw2 AT nRow, nCol

ENDIF

RETURN oMenu

Espero te sirva de ejemplo.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: MEnu POPUP (Ayuda)
Posted: Thu May 12, 2011 02:52 PM
FranciscoA wrote:A ver si te entendí bien.

Mira este ejemplo (desde un oBrw en un dialog desde recursos):

oBrw2:bRClicked := {|nRow,nCol| PopMesa(oDlg,oLbx,cDirMesas,@aBmp,@aMesas,@aPathMesas,bAreaMesa,@nTotal,nRecno,dFecha,nTasaus, oBrw2,nRow,nCol) }


//--------------------------------------------------------------------------------
Function PopMesa(oDlg,oLbx,cDirMesas,aBmp,aMesas,aPathMesas,bAreaMesa,nTotal,nRecno,dFecha,nTasaus, oBrw2,nRow,nCol)
local oMenu

MENU oMenu POPUP 2007
MENUITEM "&Ver productos resumidos "+MyMesa ;
ACTION ( VerProdResu(MyMesa),;
(MyMesa)->(dbgoBottom()),oBrw2:Refresh() )

MENUITEM "&Trasladar al Cliente a otra mesa desocupada" ;
ACTION ( TraslaMesa(oBrw2,oLbx,cDirMesas,@aMesas,@aBmp,@aPathMesas,bAreaMesa),;
RefresqueBrw2(@nTotal,oBrw2) )
ENDMENU
ACTIVATE POPUP oMenu OF oBrw2 AT nRow, nCol
ENDIF

RETURN oMenu

Espero te sirva de ejemplo.
Saludos.



Cuando se hace el llamado desde un Browser no hay problema , cuando es dese un dialogo no funciona, de todas maneras coloque la imagen.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: MEnu POPUP (Ayuda)
Posted: Thu May 12, 2011 07:57 PM
Rubén, tomando el mismo ejemplo, le hice modificaciones y queda así:
1- En el evento bRclicked, al llamar la funcion, le agregué al final como parámetro el objeto contenedor (oDlg, en este caso)
2- En la funcion receptora, le agregué al final el mencionado parametro (oBjMenu, en este caso)
3- Al gestionar el ACTIVATE POPUP hago referencia a oBjMenu

oDlg:bRClicked := {|nRow,nCol| PopMesa(oDlg,oLbx,cDirMesas,@aBmp,@aMesas,@aPathMesas,bAreaMesa,@nTotal,nRecno,dFecha,nTasaus, oBrw2,nRow,nCol, oDlg) }


//--------------------------------------------------------------------------------
Function PopMesa(oDlg,oLbx,cDirMesas,aBmp,aMesas,aPathMesas,bAreaMesa,nTotal,nRecno,dFecha,nTasaus, oBrw2,nRow,nCol, oBjMenu)
local oMenu

MENU oMenu POPUP 2007
MENUITEM "&Ver productos resumidos "+MyMesa ;
ACTION ( VerProdResu(MyMesa),;
(MyMesa)->(dbgoBottom()),oBrw2:Refresh() )

MENUITEM "&Trasladar al Cliente a otra mesa desocupada" ;
ACTION ( TraslaMesa(oBrw2,oLbx,cDirMesas,@aMesas,@aBmp,@aPathMesas,bAreaMesa),;
RefresqueBrw2(@nTotal,oBrw2) )
ENDMENU
ACTIVATE POPUP oMenu OF oBjMenu AT nRow, nCol
ENDIF

RETURN oMenu

Espero te sirva de ejemplo.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: MEnu POPUP (Ayuda)
Posted: Thu May 12, 2011 10:22 PM

Francisco, esto es exactamento lo que estoy haciendo y me funciona, el problema es que quiero que me despliegue el menu el la posicion donde lo activo con el el maus op sea cuabndo doy click derecho lo debe desplegar en esa posiciony no en la line 0, columna 0 como hago para saber la coordena del al dar Click. si obsevas la dos figura al desplegar el menu te das cuenta.

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: MEnu POPUP (Ayuda)
Posted: Thu May 12, 2011 10:32 PM

Rubén, el ejemplo lo he probado y funciona. El menú se despliega en la posición donde doy RClick sobre el dialog.
¿Por qué no muestras un ejemplo autocontenido para probarlo?, quizás así te podamos ayudar.
Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: MEnu POPUP (Ayuda)
Posted: Thu May 12, 2011 10:55 PM
Aqui va un ejemplo autocontenido para que lo pruebes.

Code (fw): Select all Collapse
#INCLUDE "FIVEWIN.CH"

Function Main()
local oDlg

Define Dialog oDlg From 2,4 to 20,70 Title "Prueba con Menu PopUp"

oDlg:bRClicked := {|nRow,nCol| PopEjemplo(nRow,nCol,oDlg) }

Activate dialog oDlg Centered 

Return nil


Function PopEjemplo(nRow,nCol,oDlg)
local oMenu

MENU oMenu POPUP 2007

  MENUITEM "&Ver productos resumidos por mesa" ;
    ACTION MsgInfo("Hola")
  MENUITEM "&Trasladar al Cliente a otra mesa desocupada" ;
    ACTION MsgInfo("Hola de nuevo")
ENDMENU

ACTIVATE POPUP oMenu OF oDlg AT nRow, nCol

RETURN oMenu


Saludos
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1078
Joined: Thu Sep 27, 2007 03:47 PM
Re: MEnu POPUP (Ayuda) - Solucionado
Posted: Fri May 13, 2011 04:09 PM

Gracias Francisco ya funciono, el problema era que no estaba colocando dentro de las dos barras nCol y nRow

Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com

Continue the discussion