Как программно узнать имя метода | |
---|---|
ZenTigra Автор Сообщений: 514 Дата регистрации: 03.12.2004 |
Как программно узнать имя исполняемого метода?
PS.На подобии ?THISFORM.name - имя формы. |
Re: Как программно узнать имя метода | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
А для решения какой задачи выбран столь необычный способ? ------------------ Лень - это неосознанная мудрость. |
Re: Как программно узнать имя метода | |
---|---|
ZenTigra Автор Сообщений: 514 Дата регистрации: 03.12.2004 |
Лень каждый раз писать что за метод вызывается.
А причина в столь непонятных для вас извращениях кроется в кривости рук, однажды написавших неправильный код, а теперь пытающихся отловить непонятную ошибку в этой программе. То есть это нужно для обработчика ошибок, чтоб потом отследить последние действия пользователя. PS.Нужно передать параметр, в некоторую процедура, которая записывает последовательность действий пользователя... О командах возвращает стека вызова я в курсе, в моем случае не помогает.... Исправлено 1 раз(а). Последнее : ZenTigra, 12.07.17 16:42 |
Re: Как программно узнать имя метода | |
---|---|
PaulWist Сообщений: 14621 Дата регистрации: 01.04.2004 |
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Как программно узнать имя метода | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
PROGRAM([n]) как и для НЕ методов. Но ASTACKINFO лучше. Тем более что ИЗ обработчика ошибок через ASTACKINFO() гораздо проще и логичнее получать имя "предпоследней в стеке" программы, чем через PROGRAM(PROGRAM(-1)-1).
------------------ WBR, Igor |
Re: Как программно узнать имя метода | |
---|---|
ZenTigra Автор Сообщений: 514 Дата регистрации: 03.12.2004 |
Я же написал, программа написанная моими кривыми руками, еще с мозгами помнящими FoxPro2.6
Я знаю о ASTACKINFO() и PROGRAM(), но они мне не могут помочь. Опишу мою ситуацию, пользователь запустил одну форму, с нее другую, а со второй третью, в которой и есть НЕПРАВИЛЬНЫЙ код, который повлияет только на четвертую форму, третья форма была закрыта, вторая также, потом пользователь из первой запустил четвертую, результат Ошибка! А если запускать сразу из первой формы четвертую, все Ок. Я знаю, что будут советы отказа от переменных, от ON KEY LABEL... (чем я сейчас и занимаюсь), но я с этим так быстро не управлюсь. Тому пока решил сделать запись действий пользователя, и добавить его отчет в обработчик ошибок. Например в метод Init прописать такой код DO do_form WITH THISFORM.Name+'.Init' в метод Activate DO do_form WITH THISFORM.Name+'.Activate' в метод Release DO do_form WITH THISFORM.Name+'.Release' а в процедуре do_form все это записывать, и когда возникнет ошибка записывать эту информацию в файл (не всю, а только 40 последних действий пользователя) Я понимаю, что это извращение, но по другому как выловить свои ошибки, я не знаю... Так вот, я просто хотел тупо скопировать этот код в соответствующие методы, не дописываю ручками +'.Init', +'.Activate' и т.п. |
Re: Как программно узнать имя метода | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
Однако именно они решают проблему, которую вы вынесли в заголовок темы и описали в первом посте. Значит, вам требовалось вовсе не это. |
Re: Как программно узнать имя метода | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
ТС наверное хочет "трассировать" последовательность действий оператора (или событий в формах) в файле, его интересуют последние 40 "контрольных
|
Re: Как программно узнать имя метода | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Вероятно формы не модальные, и потому ASTACKINFO не показывает "последовательность действий предшествовавшую запуску формы" - т.к. в стеке не будет метода с DO FORM - он успешно завершится задолго до возникновения ошибки...
Уж не знаю чего там этакого накодить надо было, что такие проблемы возникают Разве что всё на public переменных да общей датасессии, и нечто нагадившее в одном месте сказывается в совершенно другом, непредсказуемом месте ------------------ WBR, Igor |
Re: Как программно узнать имя метода | |
---|---|
ZenTigra Автор Сообщений: 514 Дата регистрации: 03.12.2004 |
Да именно так. А количество в 40 последних действий будет достаточно. Вот пример части файла отчета об ошибках Цитата: ну и так далее, всего файла выкладывать не хочу. (сайт немножко портит вид, убирая лишние пробелы...) Так вот, приходиться для каждого метода прописывать его наименование ручками... Не думайте, что это для каждого метода, меня интересует только Init, Activate и Release.
|
Re: Как программно узнать имя метода | |
---|---|
ZenTigra Автор Сообщений: 514 Дата регистрации: 03.12.2004 |
Угадали Исправлено 1 раз(а). Последнее : ZenTigra, 13.07.17 21:09 |
© 2000-2024 Fox Club  |