Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.11.2011, 17:06
front242 front242 вне форума
Прохожий
 
Регистрация: 12.11.2011
Сообщения: 10
Репутация: 10
По умолчанию Хитро узнать имя класса и его метода

Здравствуйте, уважаемые!

Имею код:

Код:
{$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 методом предка этого класса? Ну вы поняли,
хочется простенький юнит-логгер. Сторонних монстров
пожалуйста не предлагайте.

Спасибо за внимание.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter