Переменная имени модуля - есть?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Активист
- Сообщения: 114
- Зарегистрирован: 29 Март 2006, 10:53
- Откуда: Саранск
- Контактная информация:
Переменная имени модуля - есть?
Добрый день всем.
Clarion 5.5 EE ABC
Хочу сделать вывод в LOG - файл ошибок, возникших при выполнении программы, операций, выполняемых пользователями и т. д.
В связи с этим написал стандартную сплэш - процедуру, в которую параметрами передается всё то, что хочу залогить.
Так вот хотелось бы передавать еще и имя модуля, вызывающего процедуру. Можно, конечно, и ручками, но может есть стандартная переменная, в которой при выполнении модуля фиксируется его имя?
Заранее спасибо.
Clarion 5.5 EE ABC
Хочу сделать вывод в LOG - файл ошибок, возникших при выполнении программы, операций, выполняемых пользователями и т. д.
В связи с этим написал стандартную сплэш - процедуру, в которую параметрами передается всё то, что хочу залогить.
Так вот хотелось бы передавать еще и имя модуля, вызывающего процедуру. Можно, конечно, и ручками, но может есть стандартная переменная, в которой при выполнении модуля фиксируется его имя?
Заранее спасибо.
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Re: Переменная имени модуля - есть?
Вот тебе шаблончик: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
#!=============================================================================
Module:Name EQUATE('mobil001.clw')
Учти что в основной модуль ничего не добавляется т.к. он глобальный...
Если что подправишь шаблон, там все просто...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
-
- Активист
- Сообщения: 114
- Зарегистрирован: 29 Март 2006, 10:53
- Откуда: Саранск
- Контактная информация:
Re: Переменная имени модуля - есть?
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). А можно, чтобы писалось имя модуля?
-
- Активист
- Сообщения: 114
- Зарегистрирован: 29 Март 2006, 10:53
- Откуда: Саранск
- Контактная информация:
Re: Переменная имени модуля - есть?
Ну то есть желательно было бы автоматически получить имя вызвавшей его процедуры.
Re: Переменная имени модуля - есть?
Сразу после входа сохрани GlobalErrors.GetProcedureName () . Для всех ABC - процедур кроме Source выдаст наименование процедуры.
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Re: Переменная имени модуля - есть?
Какой вопрос такой и ответ. Изначально говорилось о имени модуляoptron писал(а):Ну то есть желательно было бы автоматически получить имя вызвавшей его процедуры.

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