Een van die nuttige, toevallige ontdekkingen: wat de Action betekent in menu: mailinglist
items .. which can throw “actions”
De Action helpt in het beheer van complexe toepassingen met veel menu’s en knoppen, die overlappen in functie, en waarvan de toestand (beschikbaarheid) moet aangepast worden naargelang omstandigheden (itt een altijd bereikbaar menu als Help, About,..).
Met dat Action veld kan je een “actie” definiëren waarop die verschillende “controls” van toepassing zijn, zoals de actie “bewaar huidig document”, actie bv genaamd “ActSaveFile” (zou bv voor menu “File, Save” en shortcut ctrl-s en een toolbutton “tlbtSave” kunnen zijn).
Je kan volgens de beschrijving die met één procedure na het bewaren inactief maken bv.
action["ActSaveFile"].Enabled = FALSE
PUBLIC SUB inactivateSave(bNewState AS Boolean)
Action["ActSaveFile"].Enabled = bNewState
mniOther.Enabled = NOT bNewState ' some other alternating function
END
Bovendien kan je op basis daarvan ook code laten uitvoeren; acties worden gecheckt, je moet alleen de procedure schrijven om er iets mee te doen; de parameter is de naam van de actie en return waarde is een boolean:
PUBLIC SUB Action_Activate(sAction AS String) AS Boolean
DEBUG sAction
SELECT sAction
CASE "ActSaveFile"
saveCurrentFile()
CASE
' ...
END SELECT
RETURN TRUE ' might be located in CASEs as result there
END
Meer uitleg over Actions op de (niet-vertaalde) documentatiepagina: http://www.gambasdoc.org/help/comp/gb.qt/action?nl