Russian Qt Forum
Май 07, 2024, 02:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Определить, есть ли в скрипте нужная функция?  (Прочитано 4317 раз)
marbius
Гость
« : Август 07, 2010, 17:53 »

Доброго времени суток.

Можно ли определить [из программы]*, есть ли в скрипте необходимая функция (читать: определил ли пользователь в скрипте некую функцию)?

Пока вижу 2 решения:
1. Анализ исходников скрипта - имхо очень примитивно...
2. Вызов требуемой функции "в лоб" и анализ результата, т.е. примерно так:
Код:
QScriptValue val=engine->evaluate("somefunc();");
if (!val.isError())
{
    // функция определена
}

Может есть более "прямое" решение?

Благодарен.

* - добавлено в начальный вопрос
« Последнее редактирование: Август 07, 2010, 19:07 от µarbius » Записан
ax
Чайник
*
Offline Offline

Сообщений: 60


Просмотр профиля
« Ответ #1 : Август 07, 2010, 18:20 »

if (typeof somefunc === "function")
{
    somefunc();
}
Записан
marbius
Гость
« Ответ #2 : Август 07, 2010, 18:26 »

if (typeof somefunc === "function")
{
    somefunc();
}

Возможно, вопрос был не совсем корректно задан, но необходимо определить из хост-программы (Qt C++) , присутствует ли в загруженном в QScriptEngine пользовательском скрипте некоторая функция. Или я не совсем понял применения вашего кода...
« Последнее редактирование: Август 07, 2010, 18:32 от µarbius » Записан
asvil
Гость
« Ответ #3 : Август 07, 2010, 19:02 »

Код:
QScriptEngine::globalObject()::property("func").isFunction()
Записан
marbius
Гость
« Ответ #4 : Август 07, 2010, 19:07 »

2 Филоненко Михаил: Благодарен.

Тема закрыта.

РЕШЕНИЕ

Код:
QScriptEngine::globalObject()::property("func").isFunction()
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 23.