Tmd,bcb就是比delphi费劲,bcb高手快来解答!!!(200分)

  • 主题发起人 主题发起人 wangxd
  • 开始时间 开始时间
W

wangxd

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样用bcb取得网页中的标题啊?
下面是我的代码:

//取得html中标题
IHTMLDocument2 *bo;
OleInitialize(NULL);
WideString url="d://temp//bde.htm";
CppWebBrowser1->Navigate(url);
bo=(IHTMLDocument2 *)(&(CppWebBrowser1->Document));
wchar_t **a,*b;
wchar_t tmp[100];
b=tmp;
a=&b
bo->get_title(a);
//Edit1->Text=**a;
以上代码编译通过,但执行有误,何故?

看人家用delphi很方便的,我用bcb不爽,以下是delphi的代码,太简单了,bcb就复杂多了,(ole控制office也费劲)
var
DoC: IHTMLDocument2;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
Memo1.Lines.Add(Doc.body.outerhtml)
//读源码
Memo1.Lines.Add(Doc.body.outerText)
//Html To Text
end;
问了n个人了~~~~
 
首先,为了保证同步,应该把获取Document内容的代码放到OnDocumentComplete事件去;
其次,应该遵照M$的文档和BCB的类型标准去做,不要瞎猜呀 :-)

IHTMLDocument2 *io;
BSTR title;

(void *)io=CppWebBrowser1->Document;
io->get_title(&title);
Edit1->Text=title;

看起来比Delphi差不多? :-)
 
>>温柔一刀
到底还是一刀兄厉害,你的代码我还没试,行了马上给分。
我想再问问,能不能直接通过ole控制ie获得html文档的各种信息,如标题、文本内容、
原代码等各种信息?我不用TCppWebBrowser行不行?
象Doc.body.outerhtml这样的代码在bcb中应该怎样写,恐怕要多几个步骤把!
//应该遵照M$的文档和BCB的类型标准去做
哪有呢?msdn被我删掉了,硬盘没地方了。:-)
 
1.你说的我没做过,我记得有人提出过,好像没那么容易,要通过窗口?
2.如果机器上没有,就到MSDN网站上查嘛。其实我想说的是你至少要先看
文档,或者控件方法声明的代码(BCB的),就不会出现wchar_t **a这种错误了。。。 :-)
 
>>温柔一刀
我想知道为什么
IHTMLDocument2 *bo;
bo=(IHTMLDocument2 *)(CppWebBrowser1->Document);有错
而(void *)io=CppWebBrowser1->Document;却没错
我不想让别人看到tcppwebbrowser,我将它的visable=false,却没用,why?
只好将其缩小,用一个控件把它挡住,太恶心了,有没有什么好的办法?
顺便问一句TOleContainer在显示word文档时背景总是灰色的,怎么办?
问题多了些,希望您能答复,分肯定都是您的,thanks!!!
 
1.一下子说不清,现在没时间(虽然不复杂)
2.TWinControl(webbrowser1).visible:=false;
(不过你恐怕会失望,invisible后,OnDocumentComplete就失效了,我刚刚回答过这个问题)
3.不会,看过有人问,好像没听说有解决的,你再查查。。。

ps:我不答复,分就不肯定都是我的? :-)
 
>>我不想让别人看到tcppwebbrowser,我将它的visable=false,却没用,why?
>>只好将其缩小,用一个控件把它挡住,太恶心了,有没有什么好的办法?
你把 left 设置成 8000
top = 10000,还有谁看得见?
 
一刀,发分了
 
hi,sorry,把这个话题忘了

强制转换是有方向的,从“父”接口到“子”接口的转换,编译有可能通不过,
因此反过来,在左边作反向转换就可以了,这纯属编译的事情。。。

那天太晚了,一下子不知道该怎么说。。。
 
后退
顶部