Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Имя процедуры\функции внутри себя ...


Slaga ©   (2004-07-29 15:31:00) 

Подскажите пожалуйста, как узнать имя процедуры\функции внутри самой себя, возможно ли такое ?


Slaga   (2004-07-29 17:53:00) [1]

Да, если б просто было что то типа Self.ProcName  :))


Гаврила   (2004-07-29 16:28:00) [2]

то есть вместо записи

Log('ProcedureName')

получится

try
Assert(False)
except
 //обработка номера строки
 //запись в лог
end;

try \ except нужен для того, чтобы выполнение продолжалось, если в протокол записывается просто информация о нормальном ходе.

Смысла не вижу в упор


Slaga   (2004-07-29 16:03:00) [3]

Спасибо


default   (2004-07-29 16:03:00) [4]

Mas: Array[1..LastStringNumber] of String = (...,'P2', ...)
по-моему эту идею Игорь Осовяк подал(сори если ошибся в написании фамилии)


default   (2004-07-29 15:59:00) [5]

1 procedure P1;
2 begin
3 end;
4
5 procedure P2;
6 begin
7  из Assert(False) можно достать цифру 7(то есть номер строки кода где возникло искл-ие(
 и потом Log(Mas[ExtractStringNumber])

...
Mas: Array[1..LastStringNumber] of String = (...,'2', ...)
либо навроде этого массив
либо форм-ать массив ТОЛЬКО со строками подпрограмм меньше памяти расх-ся но меньше скорость доступа


Palladin   (2004-07-29 15:56:00) [6]


> default ©   (29.07.04 15:47)

Так это индексатор писать надо... Существующих я вроде не видел...


Slaga   (2004-07-29 15:51:00) [7]

>default
а можна пару строк кода в пример ?


Palladin   (2004-07-29 15:50:00) [8]

Где?


Slaga   (2004-07-29 15:49:00) [9]

>Palladin
Автоматизация !


default   (2004-07-29 15:47:00) [10]

как-то предлагалось внутри ф-ции вызывать Assert для генер-ии искл-ия, оно даст номер строки
и составить массив соот-вия номеров строк и имён подпрограмм


Palladin   (2004-07-29 15:47:00) [11]

Какая разница: писать LogWrite(GetProcName) или LogWrite('MyProc') ?


Slaga   (2004-07-29 15:44:00) [12]

Я делаю журналирование работы своей программы, попросту говоря веду лог, и в определенных прц\фнк запысываю в лог время дейсвие и результат, нехочеться каждый раз писать руками что за процедура пишет в лог.


Palladin   (2004-07-29 15:40:00) [13]

Интересно, а зачем тебе это?


Slaga   (2004-07-29 15:38:00) [14]

:( жаль


Ega23   (2004-07-29 15:32:00) [15]

В общем случае, к сожалению, нет. В частных - через большие извраты.


Наверх

Титульная страница Поиск, карта сайта Написать письмо