将 Visual C++ 代码转换为 Borland C++Builder
Convert Visual C++ code to Borland C++Builder
我用 Visual C++ 编写了一个程序。但是现在我必须把我的代码放在一个用 Borland C++Builder 编码的程序中。我的表单上有一个 WebBrowser 项目。在 Visual C++ 中,我将数据写入文本框,从文本框中获取数据,然后使用以下代码单击 WebBrowser 上的按钮:
写入数据:
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。
你能给我一个线索或建议吗?
在 C++Builder 6 中,其 TCppWebBrowser
VCL 组件是 Internet Explorer ActiveX 控件的 thin 包装器。它的 Document
属性 returns 和 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();
我用 Visual C++ 编写了一个程序。但是现在我必须把我的代码放在一个用 Borland C++Builder 编码的程序中。我的表单上有一个 WebBrowser 项目。在 Visual C++ 中,我将数据写入文本框,从文本框中获取数据,然后使用以下代码单击 WebBrowser 上的按钮:
写入数据:
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。
你能给我一个线索或建议吗?
在 C++Builder 6 中,其 TCppWebBrowser
VCL 组件是 Internet Explorer ActiveX 控件的 thin 包装器。它的 Document
属性 returns 和 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();