Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Имя объекта, который вызвал функцию / 10 сообщений из 10, страница 1 из 1
06.04.2014, 11:37
    #38606355
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
Есть ли возможность получить список "пройденных" объектов (по типу call_stacka)?
Т.е. например, мы нажали в программе на b_1, в скрипте которой есть обращение к функциям f_1 и f_2.
Нужно получить такой список:
b1
f_1
f_2

Или, хотя бы, получить имя объекта, который вызвал функцию.
...
Рейтинг: 0 / 0
06.04.2014, 13:11
    #38606396
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
Riska ,
возможно здесь найдется решение.
...
Рейтинг: 0 / 0
06.04.2014, 13:40
    #38606415
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
AIS,
Не сильно помогло.
Список функций можно получить, но как узнать, в какую был заход, а в какую нет?
Важен и порядок.
...
Рейтинг: 0 / 0
06.04.2014, 21:00
    #38606633
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
Например, включать в скрипты функции/события:
Код: sql
1.
2.
3.
4.
/*на выходе*/
PopulateError(999, "notused")
/*на входе*/
Messagebox( "откуда", error.object + "." + error.objectevent)


В результате получаем, то что требуется ;)
cb_test.clicked
...
Рейтинг: 0 / 0
07.04.2014, 12:28
    #38607111
Raven A
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
Можно зайти и с другой стороны.
Заказать трассу (ну хоть /pbdebug ) и "Profiling Trace view".
Если хочется развлечься, можно самому распарсить трассу, там достаточно простой текст.
...
Рейтинг: 0 / 0
10.04.2014, 16:48
    #38611527
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
AIS,
Код: sql
1.
2.
3.
4.
/*на выходе*/
PopulateError(999, "notused")
/*на входе*/
Messagebox( "откуда", error.object + "." + error.objectevent)


Тогда уже проще создать глобальную переменную и в каждой функции менять ее имя (что мы собственно и сделали)
Коряво, но эффективно :)
...
Рейтинг: 0 / 0
10.04.2014, 16:49
    #38611529
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
естественно не "имя", а содержание.
...
Рейтинг: 0 / 0
10.04.2014, 17:56
    #38611643
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
Riska ,
не думаю, что Ваш вариант лучше, т.к. он не универсален: в каждом скипте надо присваивать конкретное значение глоб.переменной (как текущее на данное время имя объекта и название функции/события).
В моем варианте этой проблемы нет, он универсален везде, т.е. нет зависимости от каких либо имен и названий и их изменений в последствии (а врдуг ;).
+ не засоряем область глоб.переменных ;)
Конечно, вставлять везде 1 строку не проблема, но трудоемко, если это уже постфакту, но ещё проще пока решения не вижу.
...
Рейтинг: 0 / 0
10.04.2014, 18:03
    #38611655
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
Хотя, может быть ещё проще везде при вызове функции/события добавить лишний аргумент, например ввиде структуры. Тогда и глоб.переменной не понадобится, и лишних строк в скрипте добавлять.
...
Рейтинг: 0 / 0
13.04.2014, 06:28
    #38613382
Ursego
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя объекта, который вызвал функцию
Riska, если это нужно для перехвата ошибок, то рекомендую почитать это: Power Building with Exceptions - метод здорово облегчил жизнь после того, как я стал его всегда применять.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Имя объекта, который вызвал функцию / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]