Переменная имени модуля - есть?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Переменная имени модуля - есть?

Сообщение optron »

Добрый день всем.
Clarion 5.5 EE ABC

Хочу сделать вывод в LOG - файл ошибок, возникших при выполнении программы, операций, выполняемых пользователями и т. д.
В связи с этим написал стандартную сплэш - процедуру, в которую параметрами передается всё то, что хочу залогить.
Так вот хотелось бы передавать еще и имя модуля, вызывающего процедуру. Можно, конечно, и ручками, но может есть стандартная переменная, в которой при выполнении модуля фиксируется его имя?

Заранее спасибо.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение Дед Пахом »

%Module
С уважением, ДП
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение optron »

Спасибо, Дед Пахом.
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение Admin »

optron писал(а):Спасибо, Дед Пахом.
Вот тебе шаблончик:

Код: Выделить всё

#TEMPLATE(ModuleName,'Module Name template'), FAMILY('ABC'), FAMILY('Clarion')
#!=============================================================================
#EXTENSION(ModuleNameGlobal,'Add Module Name template')
#SHEET
  #TAB('Tips')
    #DISPLAY
    #DISPLAY('Use varisable Module:Name')
    #DISPLAY
  #ENDTAB
#ENDSHEET
#!=============================================================================
#AT(%ModuleDataSection)
%[40]('Module:Name') EQUATE('%Module')
#ENDAT
#!=============================================================================
Он добавляет в каждый модуль программы такой EQUATE
Module:Name EQUATE('mobil001.clw')

Учти что в основной модуль ничего не добавляется т.к. он глобальный...
Если что подправишь шаблон, там все просто...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение optron »

Admin писал(а): Вот тебе шаблончик:

Код: Выделить всё

#TEMPLATE(ModuleName,'Module Name template'), FAMILY('ABC'), FAMILY('Clarion')
#!=============================================================================

Он добавляет в каждый модуль программы такой [color=#0000BF]EQUATE[/color]
[color=#FF0000]Module:Name[/color]  [color=#0000BF]EQUATE[/color]('[color=#008000]mobil001.clw[/color]')

Учти что в основной модуль ничего не добавляется т.к. он глобальный...
Если что подправишь шаблон, там все просто...[/quote]

Сделал вот что: 
1. Сохранил означенный код в файле name.tpl  
2. Зарегил шаблон.
3. Добавил в Global\Extention 

Теперь всё прописывает. В каждом модуле есть глобальная переменная Module:Name. Могу к ней обратиться.   
Не дают покоя следующие вопросы - 
[quote] 
Учти что в основной модуль ничего не добавляется т.к. он глобальный...
Если что подправишь шаблон, там все просто...[/quote]
1) Это в какой основной?  (Name.clw)? Действительно не добавляет, да и не нужно ... 
2) Пишется имя файла (Name007.clw), а не имя модуля (Main). А можно, чтобы писалось имя модуля?
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение optron »

Ну то есть желательно было бы автоматически получить имя вызвавшей его процедуры.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение Yufil »

Сразу после входа сохрани GlobalErrors.GetProcedureName () . Для всех ABC - процедур кроме Source выдаст наименование процедуры.
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение Admin »

optron писал(а):Ну то есть желательно было бы автоматически получить имя вызвавшей его процедуры.
Какой вопрос такой и ответ. Изначально говорилось о имени модуля :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
optron
Активист
Сообщения: 114
Зарегистрирован: 29 Март 2006, 10:53
Откуда: Саранск
Контактная информация:

Re: Переменная имени модуля - есть?

Сообщение optron »

Спасибо всем. Воспользовался и темплейтом и GlobalErrors.GetProcedureName(). Решил выводить в лог и то и то.
Всё получилось.
Ответить