OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 23 Июнь, 2025 05:55

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 09 Ноябрь, 2007 14:46 

Зарегистрирован: Четверг, 11 Октябрь, 2007 18:24
Сообщения: 1
На лабе предложили мне сделать модуль, изменяющий атрибуты текста на жирный. А почему бы не разукрасить его, подумал я от нечего делать? Вот и получилось... правда не совсем то, что задавили :) !
Попробуйте сделать меню для вызова функции 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.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Ноябрь, 2007 16:37 

Зарегистрирован: Среда, 28 Февраль, 2007 00:08
Сообщения: 142
Откуда: Нижний Новгород
Теперь есть чем придавить любителей подсветки и интелисенсов :mrgreen:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB