Перейти к содержанию
  • 0
antarey

Помогите переделать код из Delphi на C++Builder 10.3

Вопросы

Есть библиотека для парсинга .

сторики 177,178

    property Nodes[const Name: AnsiString]: TALXMLNode read GetNodeByName; default;
    property Nodes[const Index: integer]: TALXMLNode read GetNodeByIndex; default;

Я добавил ALXmlDoc.pas в проект, билдер сам создал ALXmlDoc.hpp и сгенирировал
 

    __property TALXMLNode* Nodes[const System::AnsiString Name] = {read=GetNodeByName/*, default*/};
    __property TALXMLNode* Nodes[const int Index] = {read=GetNodeByIndex};

и естественно получаю ошибку о дублировании - как исправить сие недоразумение?

И второй вопрос.

строка 705
   

property OnParseText: TAlXMLParseTextEvent read FonParseText Write FonParseText; // [added from TXMLDocument]

в  ALXmlDoc.hpp

 __property _di_TAlXMLParseTextEvent OnParseText = {read=FonParseText, write=FonParseText};
__interface TAlXMLParseTextEvent  : public System::IInterface 
{
    virtual void __fastcall Invoke(System::TObject* Sender, const System::AnsiString Path, const System::AnsiString Str) = 0 ;
};

private:
    _di_TAlXMLParseTextEvent FonParseText;
protected:
    void __fastcall DoParseText(const System::AnsiString Path, const System::AnsiString Str);

Делал по демке

*. hpp
 

void __fastcall OnParseText(System::TObject* Sender,const System::AnsiString Path, const System::AnsiString Str);

*.cpp

void __fastcall TForm1::OnParseText(System::TObject* Sender, const System::AnsiString Path, const System::AnsiString Str) {

}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) {
    TALXMLDocument* aXMLDocument = new TALXMLDocument("root");
    aXMLDocument->OnParseText = OnParseText;
}

и получаю ошибку

[bcc32 Error] Unit1.cpp(30): E2235 Member function must be called or its address taken

Как правильно объявить событие?

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

Ответы на этот вопрос пока отсутствуют

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...