|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Откуда вызвана функция....
Суть задачи такова. Есть процедура MyProc.
Вызывается в разных местах, пусть в Button1Click, Button2Click, MyMegaFunc и Edit1Change. То есть как в обработчиках событий так и в пользовательских функциях\процедурах. Ну и собственно вопрос, можно ли и если да то как, внутри MyProc поиметь в строковой переменной имя вызвавшей процедуры\функции? Естественно ничего не передавая процедуре в качестве параметров. Ну пусть это процедура должна вызываться вообще без параметров. |
#2
|
|||
|
|||
можно с jedi скачать специальный модуль, который позволяет выяснить это по стеку вызовов. Собственно, сама дельфя в режиме отладки тоже позволяет это сделать - смотри окно стека вызовов.
|
#3
|
||||
|
||||
а что-то вроде стандартных 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; |