[Gambas-user] Two more questions about Action
Benoît Minisini
g4mba5 at gmail.com
Sun Apr 29 17:44:24 CEST 2018
Le 29/04/2018 à 11:37, Gianluigi a écrit :
> I am a distracted person and yesterday I was more than usual. :-(
> Now Enabled works, sorry.
> See the attached project
> I doubt if I have understood the meaning of Local
>
> Regards
> Gianluigi
>
Yes, it is a bit difficult to explain.
1) When you do Action["xxx"], all controls whose Action is set to "xxx"
are returned.
2) Action[] takes a second argument that indicated the observer of the
action. If not specified, all controls associated with that action are
returned.
3) Action names starting with a point are (almost) just a convention
that means that they intend to be local to their current event observer
(usually their form).
4) Actions starting with a point have the same shortcuts as the action
without the initial point.
5) Control having the same action are supposed to have the same text and
the same icon. If you don't, the text and the icon of one of the control
will be used.
Example :
In the IDE, you have a form for editing Gambas source code. You can have
multiple instances of that form, if you have opened several sources files.
In that form, you have a button to undo the last change. It is
associated with the ".undo" action.
If you lock the form, the ".undo" action is hidden, but only for that
form. The undo buttons of the other forms must keep being visible!
1) If I do Action[".undo"].Visible = False, all undo buttons of all
forms will be hidden.
2) So I have to do Action[".undo", Me].Visible = False in the source
code of the form (hence Me represents the form, the event observer of
the toolbar button and the menu entry I want to hide).
3) As the undo action must be hidden in one form only, I name it a
"local" action. I must start it with a point so that the Action class
acts correctly.
4) If you change the shortcut of the "undo" action in the shortcut
configuration dialog, you will see that there is only one shortcut for
all "undo" action everywhere.
5) You could have a "global" undo action named "undo" too (usually you
don't. An action is either local or global, like "open-project"). It
will have the same shortcut than ".undo".
6) See "local" action like a "dynamic variable", and "global" action
like a "static variable".
I hope things are clearer now.
--
Benoît Minisini
More information about the User
mailing list