Gambas2 menu editor: Action

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