Кнопка как коммандер - для конечного приложения

Коммандеры - это хорошо, все мы это знаем.

Это хорошо даже и для обычных пользователей, хотя обычные пользователи не всегда об этом знают

Только вот "совсем конечного..." пользователя... не всегда хочется пугать видом команды после коммандера. Хочется, чтоб была просто клюкабельная пимпочка, а после - текст для обработки.

Вуаля. Делаем где-нибудь процедуру:

## Код:
```
PROCEDURE GetButtonPar*;
      VAR txt: TextModels.Model;
            beg, end: INTEGER;
            rd: TextModels.Reader;
            v: Views.View;
   BEGIN
      IF (Controls.par # NIL) & (Controls.par.context # NIL) & (Controls.par.context IS TextModels.Context) THEN
         txt := Controls.par.context(TextModels.Context).ThisModel();
         beg := Controls.par.context(TextModels.Context).Pos() + 1;
         rd := txt.NewReader(NIL);
         rd.SetPos(beg);
         rd.ReadView(v);
         WHILE (v # NIL) & ~ ( Services.SameType(v, Controls.par) ) DO
            rd.ReadView(v)
         END;
         IF v # NIL THEN
            end := v.context(TextModels.Context).Pos()
         ELSE
            end := txt.Length()            
         END;
         IF beg < end THEN
            NEW(DC.par);
            DC.par.text := txt;
            DC.par.beg := beg;
            DC.par.end := end
         END
      END
   END GetButtonPar;
```


Далее мы можем вставлять вместо коммандера кнопку, в Link которой перед основным действием вписываем GetButtonPar.
Закрываем командную строчку пустой кнопкой (ну или другой командной, всё как у обычных коммандеров).

(Конечно, для компиляции никто кнопку использовать не будет; это так, сляпано для примера...)