MenuItem:SetCheck() and POPUP Menu ?
Posted: Mon Oct 31, 2022 4:44 am
hi,
does o:SetCheck() work when it is use as POPUP Menu
if Yes, how
does o:SetCheck() work when it is use as POPUP Menu

if Yes, how

www.FiveTechSoft.com
https://forums.fivetechsupport.com/~fivetec1/forums/
https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?t=42385
Code: Select all | Expand
#include "FiveWin.ch"
function Main()
local oWnd
DEFINE WINDOW oWnd MENU BuildMenu()
ACTIVATE WINDOW oWnd
return nil
function BuildMenu()
local oMenu, oItem
MENU oMenu
MENUITEM "test"
MENU
MENUITEM "One"
MENU
MENUITEM "First" ACTION oItem:SetCheck( .T. )
MENUITEM "Second"
ENDMENU
MENUITEM oItem PROMPT "Two"
MENUITEM "Three"
ENDMENU
ENDMENU
return oMenu
Code: Select all | Expand
#include "FiveWin.ch"
function Main()
local oWnd, oBtn
DEFINE WINDOW oWnd MENU BuildMenu()
oBtn := TButton() :new(10, 10, "press me", oBtn,, 500,200,,,, .T. )
oBtn:bAction := { | oCtrl, nRow, nCol, nKeyFlags | ;
BUILDMENU2( oCtrl, nRow, nCol, nKeyFlags ) }
ACTIVATE WINDOW oWnd
return nil
function BuildMenu()
local oMenu, oItem
MENU oMenu
MENUITEM "test"
MENU
MENUITEM "One"
MENU
MENUITEM "First" ACTION IF(oItem:lChecked ,;
oItem:SetCheck ( .F.) ,;
oItem:SetCheck ( .T.) )
MENUITEM "Second"
ENDMENU
MENUITEM oItem PROMPT "Two"
MENUITEM "Three"
ENDMENU
ENDMENU
return oMenu
function BuildMenu2(oCtrl, nRow, nCol)
local oMenu, oItem
MENU oMenu POPUP
MENUITEM "test"
MENU
MENUITEM "One"
MENU
MENUITEM "First" ACTION IF(oItem:lChecked ,;
oItem:SetCheck ( .F.) ,;
oItem:SetCheck ( .T.) )
MENUITEM "Second"
ENDMENU
MENUITEM oItem PROMPT "Two"
MENUITEM "Three"
ENDMENU
ENDMENU
ACTIVATE POPUP oMenu OF oCtrl AT nRow, nCol
return oMenu
Yes, but menu settings is lost when the POPUP menu closed. You have to keep the information yourself and apply it when you create the POPUP menu.Jimmy wrote:hi,
does o:SetCheck() work when it is use as POPUP Menu![]()
Code: Select all | Expand
#include "FiveWin.ch"
static lChecked := .F.
function Main()
local oWnd, oBtn
DEFINE WINDOW oWnd MENU BuildMenu()
oBtn := TButton() :new(10, 10, "press me", oBtn,, 500,200,,,, .T. )
oBtn:bAction := { | oCtrl, nRow, nCol, nKeyFlags | ;
BUILDMENU2( oCtrl, nRow, nCol, nKeyFlags ) }
ACTIVATE WINDOW oWnd
return nil
function BuildMenu()
local oMenu, oItem
MENU oMenu
MENUITEM "test"
MENU
MENUITEM "One"
MENU
MENUITEM "First" ACTION oItem:SetCheck( ! oItem:lChecked )
MENUITEM "Second"
ENDMENU
MENUITEM oItem PROMPT "Two"
MENUITEM "Three"
ENDMENU
ENDMENU
return oMenu
function BuildMenu2(oCtrl, nRow, nCol)
local oMenu, oItem
MENU oMenu POPUP
MENUITEM "test"
MENU
MENUITEM "One"
MENU
MENUITEM "First" ACTION oItem:SetCheck( lChecked := ! lChecked )
MENUITEM "Second"
ENDMENU
if lChecked
MENUITEM oItem PROMPT "Two" CHECKED
else
MENUITEM oItem PROMPT "Two"
endif
MENUITEM "Three"
ENDMENU
ENDMENU
ACTIVATE POPUP oMenu OF oCtrl AT nRow, nCol
return oMenu
to use static lChecked is clearAntonio Linares wrote:Here you have your example modified to work as you want:Code: Select all | Expand
static lChecked := .F. if lChecked MENUITEM oItem PROMPT "Two" CHECKED else MENUITEM oItem PROMPT "Two" endif