Преобразование кода Visual C ++ в Borland C ++ Builder - PullRequest
0 голосов
/ 27 февраля 2019

Я написал программу на Visual C ++.Но теперь я должен поместить свой код в программу, которая написана на Borland C ++ Builder.У меня есть элемент WebBrowser в моей форме.В Visual C ++ я записываю данные в текстовое поле, получаю данные из текстового поля и нажимаю кнопку в веб-браузере с таким кодом:

Запись данных:

WebBrowser1->Document->GetElementById("okul_kod")->SetAttribute("value", TextBox2->Text);

Получение данных:

textBox17->Text = WebBrowser1->Document->GetElementById("kay_cev")->GetAttribute("value");

Нажатие кнопки:

WebBrowser1->Document->GetElementById("panelden_kayit")->InvokeMember("click");

Я много чего пробовал и искал в Интернете, но не могу найти, как преобразовать этот код в Borland C ++ Builder.

Не могли бы вы дать мне подсказку или совет?

1 Ответ

0 голосов
/ 27 февраля 2019

В C ++ Builder 6 его TCppWebBrowser VCL-компонент является тонкой оболочкой для элемента управления ActiveX Internet Explorer.Его свойство Document возвращает значение IDispatch, которое можно использовать для прямого доступа к необработанным интерфейсам IE DOM (тогда как Visual C ++, кажется, обернул эти интерфейсы немного удобнее для вас).

Попробуйте что-то вродеэто:

#include <mshtml.h>
#include <utilcls.h>

// helpers for interface reference counting
// could alternatively use TComInterface instead of DelphiInterface
typedef DelphiInterface<IHTMLDocument3> _di_IHTMLDocument3;
typedef DelphiInterface<IHTMLElement> _di_IHTMLElement;

...

// Write Data:
_di_IHTMLDocument3 doc = CppWebBrowser1->Document;
_di_IHTMLElement elem;
OleCheck(doc->getElementById(WideString("okul_kod"), &elem));
if (elem) OleCheck(elem->setAttribute(WideString("value"), TVariant(Edit2->Text)));

// Get Data:
_di_IHTMLDocument3 doc = CppWebBrowser1->Document;
_di_IHTMLElement elem;
OleCheck(doc->getElementById(WideString("kay_cev"), &elem));
TVariant value;
if (elem) OleCheck(elem->getAttribute(WideString("value"), 2, &value));
Edit17->Text = value;

//Button Click:
_di_IHTMLDocument3 doc = CppWebBrowser1->Document;
_di_IHTMLElement elem;
OleCheck(doc->getElementById(WideString("panelden_kayit"), &elem));
if (elem) elem->click();
...