Page 2 of 3

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Tue May 11, 2021 5:01 pm
by cnavarro
I deleted previous link
Please try this and rename to .exe
https://bitbucket.org/fivetech/fivewin- ... rizon2.ex1

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Tue May 11, 2021 5:18 pm
by Horizon
cnavarro wrote:I deleted previous link
Please try this and rename to .exe
https://bitbucket.org/fivetech/fivewin- ... rizon2.ex1


Hi Mr. Navarro,

It is not related to filename. I could not download any file in https://bitbucket.org/fivetech/fivewin-contributions/downloads/

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Tue May 11, 2021 7:05 pm
by cnavarro
Dear Hakan, why?
Please send me a mail to navarro [ dot ] cristobal [ arroba ] gmail [ dot ] com

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Tue May 11, 2021 8:02 pm
by Silvio.Falconi
this run ok ( with your funcs)

Code: Select all  Expand view
 


  #include "FiveWin.ch"

    function Main()

       local oWnd

       DEFINE WINDOW oWnd MENU BuildMenu()

       ACTIVATE WINDOW oWnd

    return nil


//---------------------------------------------------------------------------------------------------------//
    function BuildMenu()

       local oMenu,nhh,baction

       MENU oMenu
          MENUITEM "First"
             MENU
                For nhh= 1 to 4
                 baction:= GenBlock_Faiz(nhh)
                MENUITEM "function number "+ltrim(str(nhh)) BLOCK baction
               next
             ENDMENU  
       ENDMENU

    return oMenu



//---------------------------------------------------------------------------------------------------------//
      FUNCTION GenBlock_Faiz(nhh)
    LOCAL cProc := "Faiz"+ALLTRIM(STR(nhh))
    RETURN {|| &(cProc)() }
//---------------------------------------------------------------------------------------------------------//
 Function Faiz4()
      return  Msginfo("run 4")

Function Faiz3()
      return  Msginfo("run  3")

Function Faiz2()
      return  Msginfo("run 2")

Function Faiz1()
      return  Msginfo("run 1")
   





On the other hand, if you want to make a popup menu on a window then it just doesn't work

Code: Select all  Expand view

#include "FiveWin.ch"

    function Main()

       local oWnd

       DEFINE WINDOW oWnd MENU BuildMenu()

       ACTIVATE WINDOW oWnd ;
        ON CLICK ShowPopup( nRow, nCol,oWnd )

    return nil

function ShowPopup( nRow, nCol,oWnd)
   local  oPop

   MENU oPop POPUP

          MENUITEM "Menu popup "
             MENU
                For nhh= 1 to 4
                 baction:= GenBlock_Faiz(nhh)
                MENUITEM "function number "+ltrim(str(nhh)) BLOCK baction
               next
             ENDMENU
       ENDMENU

   ACTIVATE POPUP oPop AT nRow, nCol OF oWnd

return nil

//---------------------------------------------------------------------------------------------------------//
      FUNCTION GenBlock_Faiz(nhh)
    LOCAL cProc := "Faiz"+ALLTRIM(STR(nhh))
    RETURN {|| &(cProc)() }
//---------------------------------------------------------------------------------------------------------//
 Function Faiz4()
      return  Msginfo("run 4")

Function Faiz3()
      return  Msginfo("run  3")

Function Faiz2()
      return  Msginfo("run 2")

Function Faiz1()
   return  Msginfo("run 1")



I would also be interested in solving the problem. thank you

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Wed May 12, 2021 8:41 am
by Horizon
cnavarro wrote:Dear Hakan, why?
Please send me a mail to navarro [ dot ] cristobal [ arroba ] gmail [ dot ] com


Sent.

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 7:33 am
by Horizon
Any solution?

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 7:59 am
by cnavarro
Hakan, your mail It was in the span folder and I hadn't seen it
I am seeing how I can send the executable to you

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 10:52 am
by Horizon
cnavarro wrote:Hakan, your mail It was in the span folder and I hadn't seen it
I am seeing how I can send the executable to you


Hi Mr. Navarro,

I have downloaded and run. Ribbon does not properly work. There is no option Change Style. Menu First works once "run4".

I really dont know where to look.

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 10:56 am
by Antonio Linares
Dear Hakan,

Could you provide a small and self contained PRG to test here ?

many thanks

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 11:37 am
by Horizon
Hi,

Code: Select all  Expand view

#include "fivewin.ch"
#include "ribbon.ch"


function main()

   local oRBar
   local oWnd, oMenu

   DEFINE WINDOW oWnd TITLE "RibbonBar Test " + FWVERSION from 1,1 to 600,600 pixel //brush oBrush1
   
   Define_RIBBON(oWnd)

  SET MESSAGE OF oWnd TO "Testing FWH own Class RibbonBar" ;
      CENTERED CLOCK KEYBOARD 2007
   
   ACTIVATE WINDOW oWnd MAXIMIZED
   
   oRBar:End()
   
return nil

PROCEDURE Define_RIBBON(oWnd)
LOCAL oFaizMenu, oTopluRap, oYetkiVerme
LOCAL oRBar, oGrp11
 
    MENU oFaizMenu POPUP 2007
        MENUITEM "test" BLOCK { || MsgInfo( "Hello" ) }        
    ENDMENU
     
    DEFINE RIBBONBAR oRBar WINDOW oWnd ;
        PROMPT "Option 1","Option 2","Option 3" ;
        HEIGHT 133 TOPMARGIN 25
    oRBar:nLeftMargin := 75
    oRBar:CalcPos()
   
  ADD GROUP oGrp11  RIBBON oRBar TO OPTION 1 PROMPT "" WIDTH 200
        @ 3, 3 ADD BUTTON oBtn GROUP oGrp11 ;
            SIZE 70, 70 PROMPT "Faiz" ;
            MENU oFaizMenu POPUP        
 
RETURN

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 12:13 pm
by karinha
Hello, in this modified example, what should he do?

Code: Select all  Expand view

#Include "FiveWin.ch"
#Include "Ribbon.ch"

STATIC oWnd

FUNCTION Main()

   LOCAL oRBar
   LOCAL oMenu

   DEFINE WINDOW oWnd TITLE "RibbonBar Test " + FWVERSION
   
   // Define_RIBBON( oWnd )

   SET MESSAGE OF oWnd TO "Testing FWH own Class RibbonBar" ;
      CENTERED CLOCK KEYBOARD 2007
   
   ACTIVATE WINDOW oWnd MAXIMIZED ON INIT( Define_RIBBON( oWnd ) )
   
   oRBar:End()
   
RETURN NIL

PROCEDURE Define_RIBBON(oWnd)

   LOCAL oFaizMenu, oTopluRap, oYetkiVerme
   LOCAL oRBar, oGrp11, oBtn
 
   MENU oFaizMenu POPUP 2007

      MENUITEM "test" BLOCK { || MsgInfo( "Hello" ) }

   ENDMENU
     
   DEFINE RIBBONBAR oRBar WINDOW oWnd ;
      PROMPT "Option 1","Option 2","Option 3" ;
      HEIGHT 133 TOPMARGIN 25

   oRBar:nLeftMargin := 75
   oRBar:CalcPos()
   
   ADD GROUP oGrp11  RIBBON oRBar TO OPTION 1 PROMPT "" WIDTH 200

   @ 3, 3 ADD BUTTON oBtn GROUP oGrp11 ;
      SIZE 70, 70 PROMPT "Faiz" ;
      MENU oFaizMenu POPUP
 
RETURN( oFaizMenu )

// FIN
 


Regards.

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 12:28 pm
by Horizon
karinha wrote:Hello, in this modified example, what should he do?

Code: Select all  Expand view

#Include "FiveWin.ch"
#Include "Ribbon.ch"

STATIC oWnd

FUNCTION Main()

   LOCAL oRBar
   LOCAL oMenu

   DEFINE WINDOW oWnd TITLE "RibbonBar Test " + FWVERSION
   
   // Define_RIBBON( oWnd )

   SET MESSAGE OF oWnd TO "Testing FWH own Class RibbonBar" ;
      CENTERED CLOCK KEYBOARD 2007
   
   ACTIVATE WINDOW oWnd MAXIMIZED ON INIT( Define_RIBBON( oWnd ) )
   
   oRBar:End()
   
RETURN NIL

PROCEDURE Define_RIBBON(oWnd)

   LOCAL oFaizMenu, oTopluRap, oYetkiVerme
   LOCAL oRBar, oGrp11, oBtn
 
   MENU oFaizMenu POPUP 2007

      MENUITEM "test" BLOCK { || MsgInfo( "Hello" ) }

   ENDMENU
     
   DEFINE RIBBONBAR oRBar WINDOW oWnd ;
      PROMPT "Option 1","Option 2","Option 3" ;
      HEIGHT 133 TOPMARGIN 25

   oRBar:nLeftMargin := 75
   oRBar:CalcPos()
   
   ADD GROUP oGrp11  RIBBON oRBar TO OPTION 1 PROMPT "" WIDTH 200

   @ 3, 3 ADD BUTTON oBtn GROUP oGrp11 ;
      SIZE 70, 70 PROMPT "Faiz" ;
      MENU oFaizMenu POPUP
 
RETURN( oFaizMenu )

// FIN
 


Regards.


It is still same behavior. there is not change.

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Thu May 13, 2021 6:39 pm
by karinha
I think, that is a defect in your version. Test this example to see what happens. Regards.

Code: Select all  Expand view

#include "FiveWin.ch"
#Include "Ribbon.ch"

STATIC oWnd

STATIC lLook := .T.

FUNCTION Main()

   LOCAL oRBar
   LOCAL oMenu

   DEFINE WINDOW oWnd TITLE "RibbonBar Test " + FWVERSION
   
   // Define_RIBBON( oWnd )

   SET MESSAGE OF oWnd TO "Testing FWH own Class RibbonBar" ;
      CENTERED CLOCK KEYBOARD 2007
   
   ACTIVATE WINDOW oWnd MAXIMIZED ON INIT( Define_RIBBON( oWnd ) )
   
   oRBar:End()
   
RETURN NIL

PROCEDURE Define_RIBBON(oWnd)

   LOCAL oFaizMenu, oTopluRap, oYetkiVerme
   LOCAL oRBar, oGrp11, oBtn
 
   MENU oFaizMenu POPUP 2007

      MENUITEM "Test Vision" BLOCK { || MsgInfo( "Hello" ), lLook := .F. } ;
         WHEN( lLook )

   ENDMENU
     
   DEFINE RIBBONBAR oRBar WINDOW oWnd ;
      PROMPT "Option 1","Option 2","Option 3" ;
      HEIGHT 133 TOPMARGIN 25

   oRBar:nLeftMargin := 75
   oRBar:CalcPos()
   
   ADD GROUP oGrp11  RIBBON oRBar TO OPTION 1 PROMPT "" WIDTH 200

   @ 3, 3 ADD BUTTON oBtn GROUP oGrp11 ;
      SIZE 70, 70 PROMPT "Faiz" ;
      MENU oFaizMenu POPUP
 
RETURN( oFaizMenu )

// FIN / END
 

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Fri May 14, 2021 7:47 am
by Horizon
Horizon wrote:Hi,

Code: Select all  Expand view

#include "fivewin.ch"
#include "ribbon.ch"


function main()

   local oRBar
   local oWnd, oMenu

   DEFINE WINDOW oWnd TITLE "RibbonBar Test " + FWVERSION from 1,1 to 600,600 pixel //brush oBrush1
   
   Define_RIBBON(oWnd)

  SET MESSAGE OF oWnd TO "Testing FWH own Class RibbonBar" ;
      CENTERED CLOCK KEYBOARD 2007
   
   ACTIVATE WINDOW oWnd MAXIMIZED
   
   oRBar:End()
   
return nil

PROCEDURE Define_RIBBON(oWnd)
LOCAL oFaizMenu, oTopluRap, oYetkiVerme
LOCAL oRBar, oGrp11
 
    MENU oFaizMenu POPUP 2007
        MENUITEM "test" BLOCK { || MsgInfo( "Hello" ) }        
    ENDMENU
     
    DEFINE RIBBONBAR oRBar WINDOW oWnd ;
        PROMPT "Option 1","Option 2","Option 3" ;
        HEIGHT 133 TOPMARGIN 25
    oRBar:nLeftMargin := 75
    oRBar:CalcPos()
   
  ADD GROUP oGrp11  RIBBON oRBar TO OPTION 1 PROMPT "" WIDTH 200
        @ 3, 3 ADD BUTTON oBtn GROUP oGrp11 ;
            SIZE 70, 70 PROMPT "Faiz" ;
            MENU oFaizMenu POPUP        
 
RETURN


Antonio, Mr. Navarro,

Can you comfirm the problem?

Re: MENUITEM with BLOCK command executed TWICE.

PostPosted: Fri May 14, 2021 10:19 am
by Antonio Linares
Hakan,

Yes, bug confirmed. thank you

Using ACTION instead of BLOCK it does not fail

We are reviewing it