Цитата
По поводу чекбоксов : да, удобнее, если отображается 5 букв на чекбоксе, а если больше? + имя это уникальный(в принципе, может быть одинаковым, но тогда система даст сбой) идентификатор любого элемента. И указав его, можно безошибочно сделать все что угодно. Так и зачем возвращать написанное на контроле?
То что всё и так можно сделать это да.

Что вижу в форме: Главное меню, Script1, Script2, Script3, start_script, HP, MP, CP.
Что пишу в скрипте: Main, Button, Button2, Button3, label, chk, chk2, chk3.
Т. е. вижу одно, пишу другое.
Возьмём, например, кнопку с именем Button2 и заголовком Script2. If будет выглядеть так:
Код
set %action GUI.GetAction ()
if %action [1 2] = Button2 and %action [1 3] = BUTTON_CLICK
Если надо будет что-то отредактировать в скрипте, придётся либо ползти в xml, либо выводить в лог или хинт GUI.GetAction чтобы узнать как называется кнопка.
Если же возвращать 4 элемента (форма, компонент, имя компонента, событие.), то If будет таким:
Код
set %action GUI.GetAction ()
if %action [1 3] = Script2 and %action [1 4] = BUTTON_CLICK
Сразу понятно что используется кнопка Script2.
Не думаю что кто-то будет делать кнопки с одинаковым названием. Никто ведь не пишет переменные с одинаковым названием.