MEnu POPUP (Ayuda) - Solucionado

MEnu POPUP (Ayuda) - Solucionado

Postby ruben Dario » 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

[img]
http://imageshack.us/photo/my-images/847/dibujo1c.jpg/
[/img]

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

[img]
http://imageshack.us/photo/my-images/854/dibujo2ee.jpg/
[/img]

Code: Select all  Expand view

::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

 
Last edited by ruben Dario on Fri May 13, 2011 4:10 pm, edited 5 times in total.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: MEnu POPUP (Ayuda)

Postby FranciscoA » Wed May 11, 2011 3: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
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: MEnu POPUP (Ayuda)

Postby ruben Dario » Thu May 12, 2011 2: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
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: MEnu POPUP (Ayuda)

Postby FranciscoA » Thu May 12, 2011 7: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
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: MEnu POPUP (Ayuda)

Postby ruben Dario » 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
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: MEnu POPUP (Ayuda)

Postby FranciscoA » 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
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: MEnu POPUP (Ayuda)

Postby FranciscoA » Thu May 12, 2011 10:55 pm

Aqui va un ejemplo autocontenido para que lo pruebes.

Code: Select all  Expand view
#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
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: MEnu POPUP (Ayuda) - Solucionado

Postby ruben Dario » Fri May 13, 2011 4: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
User avatar
ruben Dario
 
Posts: 1061
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 9 guests