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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.03.2009, 15:09
IOException IOException вне форума
Прохожий
 
Регистрация: 13.03.2009
Сообщения: 1
Репутация: 10
По умолчанию Откуда вызвана функция....

Суть задачи такова. Есть процедура MyProc.
Вызывается в разных местах, пусть в Button1Click, Button2Click, MyMegaFunc и Edit1Change. То есть как в обработчиках событий так и в пользовательских функциях\процедурах.
Ну и собственно вопрос, можно ли и если да то как, внутри MyProc поиметь в строковой переменной имя вызвавшей процедуры\функции? Естественно ничего не передавая процедуре в качестве параметров. Ну пусть это процедура должна вызываться вообще без параметров.
Ответить с цитированием
  #2  
Старый 13.03.2009, 16:15
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

можно с jedi скачать специальный модуль, который позволяет выяснить это по стеку вызовов. Собственно, сама дельфя в режиме отладки тоже позволяет это сделать - смотри окно стека вызовов.
Ответить с цитированием
  #3  
Старый 29.03.2009, 20:30
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

а что-то вроде стандартных Sender-ов оформить не судьба? вот (как вариант):
Код:
//фунцкия
function MyFunc(param1:integer;....;senderfunc:string):resulttype;
begin
  if senderfunc='Button1Click' then begin
    //.....
  end else if senderfunc='...' then begin
    //.....
  end else if senderfunc='...' then begin
    //.....
  end else if senderfunc='...' then begin
    //.....
  end;
end;

//вызов функции
procedure TForm1.Button1Click(Sender: TObject);
begin
  //.....
  MyFunc(param1,param2,...,paramN,'Button1Click');
  //.....
end;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter