FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Menu Pop cuando presiono ENTER
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM

Menu Pop cuando presiono ENTER

Posted: Wed Oct 28, 2015 08: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 (fw): Select all Collapse
         ::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/
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM

Re: Menu Pop cuando presiono ENTER

Posted: Wed Oct 28, 2015 12:07 PM
Talvez se pueda hacer igual a wbrowse.prg

Code (fw): Select all Collapse
  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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM

Re: Menu Pop cuando presiono ENTER

Posted: 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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: Menu Pop cuando presiono ENTER

Posted: Wed Oct 28, 2015 01:15 PM
Intenta

Code (fw): Select all Collapse
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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Menu Pop cuando presiono ENTER

Posted: Wed Oct 28, 2015 02:59 PM
Tambien, intentalo asi:
Code (fw): Select all Collapse
 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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM

Re: Menu Pop cuando presiono ENTER

Posted: Wed Oct 28, 2015 08:50 PM
FranciscoA wrote:Tambien, intentalo asi:
Code (fw): Select all Collapse
 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/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM

Re: Menu Pop cuando presiono ENTER

Posted: Wed Oct 28, 2015 08:52 PM
cnavarro wrote:Intenta

Code (fw): Select all Collapse
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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: Menu Pop cuando presiono ENTER

Posted: Wed Oct 28, 2015 11:05 PM
Intenta asi

Code (fw): Select all Collapse
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 (fw): Select all Collapse
::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
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Menu Pop cuando presiono ENTER

Posted: Thu Oct 29, 2015 01:29 AM
Goosfancito, prueba este ejemplo.
Code (fw): Select all Collapse
  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

Continue the discussion