Создание объектов класса в скрипте

отредактировано 22:25 Раздел: FastScript
Добавил в скрипт собственные классы TScene и TNode. В TScene реализован метод GetNode() и добавлен объект TScene scene через AddObject.

имеем следующий скрипт
{
TNode node = scene.GetNode();
ShowMessage(node.Name);
}

в колбек на свойство node.Name приходит Instance = 0xFFFFFFFF....что с этим делать?

Комментарии

  • отредактировано May 2009
    так не работает
    TNode Node = scene.GetNode(i);
    ShowMessage( Node.Name );
    

    а вот так работает, только Node соответственно пустой
    TNode Node = TNode.Create();
    ShowMessage( Node.Name );
    

    ну так как сделать, что scene.GetNode(i); возвращал в скрипте то что надо???

    вот так добавляется метод GetNode(i) и его обработчик
            TfsClassVariable* fsClass = fsScript->AddClass( __classid(TNode), "TObject" );
            fsClass->AddProperty("Name", "string", &GetValue, &SetValue);
    
            fsClass = fsScript->AddClass( __classid(TScene), "TObject" );
            fsClass->AddMethod( "function GetNode( NumNode:Integer ):TNode", &CallMethod );
            fsScript->AddObject("Scene",scene);
    
        Variant __fastcall TScene::CallMethod(System::TObject* Instance, TMetaClass* ClassType,
            const AnsiString MethodName, Variant &Params)
        {
            if(MethodName == "GETNODE")
            {
                TNode* node = new TNode(Params.GetElement(0));
                return node;
            }
            return "";
        }
    
  • отредактировано 22:25
    большое всем спасибо за участие, вопрос решен
    if(MethodName == "GETNODE")
    {
    TNode* node = new TNode(Params.GetElement(0));
    return (int)node;
    }

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.