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

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


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


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


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