OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 24 Апрель, 2024 09:24

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Bug or not Bug?
СообщениеДобавлено: Среда, 26 Декабрь, 2007 15:04 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Переделал стандартный ObxWrappers таким образом, чтобы он сбрасывал в лог названия сообщения приходящих виду. Как только добавил StdLog.Ln "обернутый" вид начал сбоить (TRAP).
Код:
PROCEDURE (v: View) HandleCtrlMsg (f: Views.Frame; VAR msg: Controllers.Message; VAR focus: Views.View);
   BEGIN
      (* here comes the behavior which is specific to this wrapper -
         it modifies the wrapped view's behavior *)
      WITH
         msg: Controllers.EditMsg DO StdLog.Msg('--> EditMsg');StdLog.Ln;
         |msg: Controllers.SelectMsg DO   StdLog.Msg('--> Selection');StdLog.Ln;
         |msg: Controllers.TrackMsg DO StdLog.Msg('--> Track');StdLog.Ln;
         |msg: Controllers.TransferMessage DO StdLog.Msg('--> TransferMessage');StdLog.Ln;
         |msg: Controllers.PollDropMsg DO StdLog.Msg('--> PollDropMsg');StdLog.Ln;
         |msg: Controllers.DropMsg DO StdLog.Msg('--> DropMsg');StdLog.Ln;
         |msg: Controllers.WheelMsg DO StdLog.Msg('--> WheelMsg');StdLog.Ln;
         |msg: Controllers.PollSectionMsg DO StdLog.Msg('--> PollSectionMsg');StdLog.Ln;
         |msg: Controllers.PollFocusMsg DO StdLog.Msg('--> PollFocusMsg');StdLog.Ln;
         |msg: Controllers.PollOpsMsg DO StdLog.Msg('--> PollOpsMsg');StdLog.Ln;
         |msg: Controllers.ScrollMsg DO StdLog.Msg('--> ScrollMsg');StdLog.Ln;
         |msg: Controllers.PageMsg DO StdLog.Msg('--> PageMsg');StdLog.Ln;
         |msg: Controllers.TickMsg DO StdLog.Msg('--> TickMsg');StdLog.Ln;
         |msg: Controllers.MarkMsg DO StdLog.Msg('--> MarkMsg');StdLog.Ln;
         |msg: Controllers.RequestMessage DO StdLog.Msg('--> RequestMessage');StdLog.Ln;
         |msg: Controllers.ReplaceViewMsg DO StdLog.Msg('--> ReplaceViewMsg');StdLog.Ln;
         |msg: Controllers.CursorMessage DO StdLog.Msg('--> CursorMessage');StdLog.Ln;
         |msg: Controllers.PollCursorMsg DO StdLog.Msg('--> PollCursorMsg');StdLog.Ln;
      ELSE
      END;            
      focus := v.inner   (* forward all controller messages to wrapped view *)
   END HandleCtrlMsg;


В чем может быть причина?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Bug or not Bug?
СообщениеДобавлено: Среда, 26 Декабрь, 2007 17:18 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Кстати, Info->Message Spy...позволяет отслеживать сообщения.
По поводу Ln - с ходу не скажу, а что за Trap?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Bug or not Bug?
СообщениеДобавлено: Четверг, 27 Декабрь, 2007 11:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
hothing писал(а):
...В чем может быть причина?

Можно было написать покороче:
Код:
PROCEDURE (v: View) HandleCtrlMsg (f: Views.Frame; VAR msg: Views.CtrlMessage; VAR focus: Views.View);
  VAR name: ARRAY 100 OF CHAR;
BEGIN Services.GetTypeName(msg, name); Log.String(name); Log.Ln
END HandleCtrlMsg;

Зато теперь, коль скоро вы расписали типы явно, то закомментировав лишнее вы можете отыскать сообщение при ловле которого происходит авария.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Bug or not Bug?
СообщениеДобавлено: Пятница, 28 Декабрь, 2007 18:01 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 252
Откуда: Austria, Bruck
Сергей, спасибо. Буду польоваться.

2Илья. К сожалению, уже не помню, вроде 2х. Спасибо, попробую Спай.


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

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


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

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


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

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