![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, уважаемые!
Имею код: Код:
{$APPTYPE CONSOLE} program Project1; uses classes, sysutils; type myclass = class( TPersistent ) procedure test; end; procedure log( msg : string ); var magic : string; begin magic := '???'; Writeln( format( '%s:%s', [ magic, msg ] ) ); end; { myclass } procedure myclass.test; begin log('here'); end; begin with myclass.Create do begin test; Free; end; Readln; end. На выходе, естественно "???:here". Внимание вопрос! Реально ли получить внутри функции log вместо ??? имя класса и метода из которгого эта функция вызвана. Да, функция лог действительно не метод класса, это не очепятка. Если это нереально, можно ли сделать подобное если сделать log методом предка этого класса? Ну вы поняли, хочется простенький юнит-логгер. Сторонних монстров пожалуйста не предлагайте. Спасибо за внимание. |