Menu Pop cuando presiono ENTER

Menu Pop cuando presiono ENTER

Postby goosfancito » Wed Oct 28, 2015 8:50 am

Hola.
Tengo la necesidad de que cuadno en un xbrowse se presione la tecla enter se muestre el mismo menu pop que cuando se prsiona la tecla derecha del mouse.
Intente esto que pego aca, pero cuando aparece el menupop lo hace fuera del dialogo, me parece que es porque no tiene coordenadas cuando lo activa,
como hago para que me salga en la posicion que apareceria al presionar la tecla derecha del mouse?

Code: Select all  Expand view
        ::oBrw:bKeyDown   := {| nkey, nRow, nCol | ::MenuPop(nRow, nCol), ::valorRetorno(nKey) }


gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Menu Pop cuando presiono ENTER

Postby karinha » Wed Oct 28, 2015 12:07 pm

Talvez se pueda hacer igual a wbrowse.prg

Code: Select all  Expand view

  Esta en: samples\account\contabil.prg
  oLbx:bRClicked := { | nRow, nCol, nFlags | ;
                        ( oMenu := MenuBegin( .T. ),;
                            MenuAddItem( OemToAnsi("A¤adir"),, .F.,,{|oMenuItem|;
                                                                  EntraApunte(),;
                                                                  FecAct := Apuntes->Fec,;
                                                                  Eval(HallaDH),;
                                                                  oLbx:Refresh(), oLbx:SetFocus() } ,,,,,,, .F., ),;
                            MenuAddItem( "Modificar",, .F.,,{|oMenuItem|;
                                                                  EntraApunte(.T.),;
                                                                  FecAct := Apuntes->Fec,;
                                                                  Eval(HallaDH),;
                                                                  oLbx:Refresh(), oLbx:SetFocus() },,,,,,, .F., ),;
                            MenuAddItem( "Borrar",, .F.,,{|oMenuItem|;
                                                                  IF (Apuntes->Del,;
                                                                    (BorraApunte(),;
                                                                     FecAct := Apuntes->Fec,;
                                                                     Eval(HallaDH),;
                                                                     oLbx:GoUp(), oLbx:Refresh()),;
                                                                    Stop ("Ese asiento no puede borrarse, pruebe desde la gestion") ) },,,,,,, .F., ),;
                            MenuAddItem(),;
                            MenuAddItem( "Localizar",, .F.,,{|oMenuItem| MsgInfo ("No Disponible") },,,,,,, .F., ),;
                            MenuAddItem( "Imprimir",, .F.,,{|oMenuItem| MsgInfo ("No Disponible") },,,,,,, .F., ),;
                            MenuAddItem(),;
                            MenuAddItem( "Plan Contable",, .F.,,{|oMenuItem|;
                                         RegApu := Apuntes->(RecNo()),;
                                         Apuntes->(dbClearRel()),;
                                         MntoCuentas(),;
                                         dbSelectArea("Apuntes"),;
                                         Apuntes->(OrdsetFocus("Fecha")),;
                                         dbSetRelation( "Cuentas", {|| Apuntes->Cta}, "Apuntes->Cta" ),;
                                         Apuntes->(dbGoTo(RegApu)),;
                                         oLbx:SetFocus(), oLbx:Refresh() },,,,,,, .F., ),;
                          MenuEnd(),;
                          oMenu:Activate( nRow, nCol, oDlg )) }
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Menu Pop cuando presiono ENTER

Postby goosfancito » Wed Oct 28, 2015 12:33 pm

Karina,

A mi lo que no me esta saliendo es que me "arma" el menu fuera del dialogo.

Gracias.
Gustavo.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Menu Pop cuando presiono ENTER

Postby cnavarro » Wed Oct 28, 2015 1:15 pm

Intenta

Code: Select all  Expand view

MENU POPUP oMenu


ACTIVATE POPUP oMenu AT n1, n2 OF oDlg
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Menu Pop cuando presiono ENTER

Postby FranciscoA » Wed Oct 28, 2015 2:59 pm

Tambien, intentalo asi:
Code: Select all  Expand view
oBrw:bKeyDown    := {| nKey | If(nKey==VK_RETURN, MenuPop(oBrw:nRowSel, oBrw:nColSel, oBrw),), MsgInfo(nKey) }

Function MenuPop(nRow, nCol, oControl)
ACTIVATE POPUP oMenu WINDOW oControl AT nRow, nCol
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2158
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Menu Pop cuando presiono ENTER

Postby goosfancito » Wed Oct 28, 2015 8:50 pm

FranciscoA wrote:Tambien, intentalo asi:
Code: Select all  Expand view
oBrw:bKeyDown    := {| nKey | If(nKey==VK_RETURN, MenuPop(oBrw:nRowSel, oBrw:nColSel, oBrw),), MsgInfo(nKey) }

Function MenuPop(nRow, nCol, oControl)
ACTIVATE POPUP oMenu WINDOW oControl AT nRow, nCol
 


Me lo posiciona arriba a la izquierda bien en el corner del browser...
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Menu Pop cuando presiono ENTER

Postby goosfancito » Wed Oct 28, 2015 8:52 pm

cnavarro wrote:Intenta

Code: Select all  Expand view

MENU POPUP oMenu


ACTIVATE POPUP oMenu AT n1, n2 OF oDlg
 


estimado, arranque probando de esa forma, luego lo mismo pero OF OBRW
y nada.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Menu Pop cuando presiono ENTER

Postby cnavarro » Wed Oct 28, 2015 11:05 pm

Intenta asi

Code: Select all  Expand view


Function MenuPop( oBrw, oCol )

//
MENU POPUP oMenu


ENDMENU
oMenu:Activate( (oBrw:nRowSel * oBrw:nRowHeight) + oBrw:nHeaderHeight, oCol:nDisplayCol, Self )

 


Ten en cuenta que el codeblock bKeydown, no recibe al evaluarse ncol y nrow por defecto, por lo que

Code: Select all  Expand view

::oBrw:bKeyDown   := {| nkey, nFlag | ::MenuPop( ::oBrw, <columna actual> ), ::valorRetorno(nKey) }
 


Lo unico que queda en el ejemplo es saber en que columna estás para pasarla como parámetro
Puedes mirar el metodo RButtonDown de xbrowse
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Menu Pop cuando presiono ENTER

Postby FranciscoA » Thu Oct 29, 2015 1:29 am

Goosfancito, prueba este ejemplo.
Code: Select all  Expand view
 oBrw:bKeyDown    := {| nKey | If(nKey==VK_RETURN, MenuPop(oBrw),), MsgInfo(nKey) }

   ACTIVATE DIALOG oDlg CENTERED
return nil

//-----------------------------------
Function MenuPop(oBrw)
local oMenu, nRow, nCol

nRow := ((oBrw:nRowSel * oBrw:nRowHeight)-4) + if(oBrw:lHeader,oBrw:nHeaderHeight,0)
nCol := oBrw:SelectedCol():nDisplayCol

MENU oMenu POPUP 2007
  MenuItem "MenuItem-1" ACTION MsgInfo("Holas-1")
  MenuItem "MenuItem-2" ACTION MsgInfo("Holas-2")
ENDMENU
//ACTIVATE POPUP oMenu WINDOW oBrw AT nRow, nCol
ACTIVATE POPUP oMenu AT nRow, nCol OF oBrw  //:oWnd
Return oMenu
 

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2158
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 72 guests