Menueitem dynamisch abschalten
Verfasst: Mo, 26. Feb 2018 9:54
Dieses Thema hatte ich schonmal unter GUI gepackt, aber irgendwie werde ich das Gefühl nicht los, das es etwas mit express++ zu tun hat.
Bis zur Version 1.90xx hat es einwandfrei geklappt. Seit der 2.0 ist es mir durch Zufall aufgefallen, das es nicht mehr klappt. In der For Next wird das Menuitem gefunden und dann deaktiviert. Aber es wird im menue nicht ausgegraut, sondern bleibt anwählbar. Selbst wenn ich von hand oMenu:disablemitem(zahl) eingebe, es bleibt aktiviert. Übersehe ich irgendwas im Express++ System, oder hat sich was geändert in der 2.0er?
Code: Alles auswählen
PROCEDURE main()
LOCAL getlist := {}
LOCAL GetOptions
LOCAL oDatenBank := datenbank():new(,,,.T.)
LOCAL oDialogZusatz := mk_dialog():new(,,"25.02.2018 ")
LOCAL oMenu1 := NIL
LOCAL oMenu2 := NIL
DCSUBMENU oMenu1;
PARENT oDialogZusatz:oMenuBar;
PROMPT "D~ienste"
DCMENUITEM "~Stundenübersicht Fahrer";
ACTION {|o|o := Thread():new(), o:start({|| stundenusicht(oMenu1)}) };
MESSAGE "" INTO oDialogZusatz:oMessageBox;
PARENT oMenu1
..................
********************************************************************************************************************
PROCEDURE stundenusicht(oMenu)
LOCAL getlist := {}
LOCAL GetOptions
LOCAL oDialog := NIL
LOCAL oDialogZusatz := dialogStundenUsicht():new(900,1080,"14.11.2017",oSysPara:oHauptDialog)
MEMVAR oSysPara
DC_SETKEYACTIVE(.T.) // damit die F-Tasten wie im textmodus klappen
oDialogZusatz:deaktiviereMenueItem(,oMenu,"STUNDENÜBERSICHT FAHRER")
.........
return
********************************************************************************************************************
METHOD mk_dialog:deaktiviereMenueItem(lAlle,oMenu,cCaption)
DEFAULT lAlle TO .F.
FOR ::nI := 1 TO oMenu:numItems()
IF Upper(CharRem("~",oMenu:getItem(::nI)[1])) == cCaption
oMenu:disableItem(::nI)
::nItem := ::nI
EXIT
ENDIF
NEXT
RETURN