На лабе предложили мне сделать модуль, изменяющий атрибуты текста на жирный. А почему бы не разукрасить его, подумал я от нечего делать? Вот и получилось... правда не совсем то, что задавили!
Попробуйте сделать меню для вызова функции Color и видоизмените какой-нибудь большой документ (например справку о языке!).

## Код:
```
MODULE MyColorer;
IMPORT TextViews,TextModels,StdLog,Fonts,Math,Ports;

PROCEDURE Ord(x,d:INTEGER):REAL;
BEGIN
   RETURN ((Math.Sin(2*Math.Pi()/d*(x MOD d)))+1)/2;
END Ord;

PROCEDURE Round(x:REAL;n,d:INTEGER):INTEGER;
BEGIN
   RETURN (SHORT(ENTIER(x*Ord(n,d))));
END Round;

PROCEDURE Color*;
   VAR
      view:TextViews.View;
      model,newmodel:TextModels.Model;
      writer:TextModels.Writer;
      reader:TextModels.Reader;
      i:INTEGER;
      attr:TextModels.Attributes;
BEGIN
   view:=TextViews.Focus();
   IF view#NIL THEN
      model:=view.ThisModel();
      NEW(attr);
      attr.InitFromProp(model.Prop(0,0));
      attr:=TextModels.NewWeight(attr, Fonts.bold);
      FOR i:=0 TO view.ThisModel().Length()-1 DO
         attr:=TextModels.NewSize(attr,100000+Round(100000,i,20));   attr:=TextModels.NewColor(attr,Ports.RGBColor(100+Round(155,i,30),Round(150,i,1000),Round(250,i,100)));
         attr:=TextModels.NewOffset(attr,Round(250000,i+30,40));
         model.SetAttr(i,i+1, attr);
      END;
   ELSE
      StdLog.String('No active text!');
   END;
END Color;
END MyColorer.
```
