<

C++ Builder and Dynamic HTML

Published on
13,706 Points
7,606 Views
1 Endorsement
Last Modified:
Approved
Here is a helpful source code for C++ Builder programmers that allows you to manage and manipulate HTML content from C++ code, while also handling HTML events like onclick, onmouseover, ...

Some objects defined and used in this source include:

   THTMLEvent
   THTMLElement
   THTMLTxtRange
   THTMLStyleSheet
   THTMLDocument
   THTMLTable , ....


Steps to use this code:

1

Put a TWebBrowser component on your form.

2

Put a TButton component on your form.

3

Define an instance of THTMLDocument:
THTMLDocument document; //in global scope

Open in new window

4

In your OnButtonClick event, write this code:
WebBrowser1->Navigate("http://www.google.com");  // test with this URL

Open in new window

5

In your OnWebBrowser1DocumentComplete handler, write this code:
document.webBrowser = WebBrowser1;

Open in new window

6

Now the document object is ready to use.
Sample usage:
THTMLElement elm = document.getElementById("gog");
ShowMessage(elm.innerHTML);

Open in new window

7

For event handling needs, define a global instance of THTMLElement:
THTMLElement myElm;

Open in new window

8

In your OnWebBrowser1DocumentComplete handler, write this code:
document.webBrowser = WebBrowser1;
myElm = document.getElementById("gog");
myElm.onclick = &OnClick;

Open in new window

9

OnClick defines as:
In public section of TForm1 write:
void OnClick();

Open in new window

...and in the CPP file write:
void TForm1::OnClick()
{
     THTMLEventObj event = document.parentWindow.event;
     ShowMessage(event.x); // mouse pos
     ShowMessage(event.ctrlKey); // if ctrl pressed
     event.returnValue = 0; // for cancel event
...
}

Open in new window

Notes:
Supported: BCB 2009, 2010
Not supported BCB XE yet;

Files:
html.cpp
html.h
1
Author:taghia
Enjoy this complimentary article view.

Get unlimited access to our entire library of technical procedures, guides, and tutorials written by certified industry professionals.

Get 7 days free
Click here to view the full article

Using this article for work? Experts Exchange can benefit your whole team.

Learn More
COLLABORATE WITH CERTIFIED PROFESSIONALS
Experts Exchange is a tech solutions provider where users receive personalized tech help from vetted certified professionals. These industry professionals also write and publish relevant articles on our site.
Ask questions about what you read
If you have a question about something within an article, you can receive help directly from the article author. Experts Exchange article authors are available to answer questions and further the discussion.
Learn from the best.