Перейти к содержанию
Fire Monkey от А до Я
  • 0

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


antarey

Вопрос

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

сторики 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 пользователей онлайн

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