手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

老文章——TWebBrowser编程简述

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

11、设置TWebBrowser的编码

  为什么我总是错过很多机会?其实早就该想到的,但是一念之差,便即天壤之别。当时我要是肯再多考虑一下,多试验一下,这就不会排到第11条了。下面给出一个函数,搞定,难以想象的简单。

  procedure SetCharSet(AWebBrowser: TWebBrowser; ACharSet: String);
  var
   RefreshLevel: OleVariant;
  Begin
   IHTMLDocument2(AWebBrowser.Document).Set_CharSet(ACharSet);
   RefreshLevel :=7;              //这个7应该从注册表来,帮助有Bug。
   AWebBrowser.Refresh2(RefreshLevel);
  End;

--------------------------------------------------------------------------------------------------------

12、在TWebBrowser中输入字符时激活菜单的解决

  许多朋友编程的时候都遇到了这样一个问题,在TWebBrowser中输入时,键入的字符如果与菜单(用ToolBar做的菜单)的加速键相同就会激活菜单。有朋友解决办法是把加速键前面的“&”符号去掉,使得字符失去“加速”功能,这种方法未尝不可,只不过显得不够“专业”。其实略加分析我们就可以想到,是ToolBar抢先处理了按键(因为ToolBar本身就设计为用来实现具有Windows新风格的菜单),所以只需要修改ToolBar的源代码中处理菜单按键的那部分代码即可,方法如下:

  1)、在$(Delphi)\source\vcl目录下找到comctrls.pas,拷贝到自己的程序所在目录,然后打开它。
  2)、找到TToolBar.CMDialogChar过程,把过程体注释掉(如果你愿意的话,可以修改它)。
  3)、重新编译自己的程序。

  怎么样,是不是很简单?但它确实有效。

--------------------------------------------------------------------------------------------------------

13、去掉TWebBrowser的滚动条

  缺省地,TWebBrowser是滚动条的,虽然我们可以在网页中设置不需要滚动条,不过,有些时候可能会有特殊的要求,比如,网页是有滚动条的,但又想去掉它该怎么办呢?很简单,下面给出两行代码,都可以达到目的,可谓殊途同归。

  1)、IHTMLBodyElementDisp(IHTMLDocument2(WebBrowser1.document).body).scroll:= ''''no'''';
  2)、WebBrowser1.oleobject.Document.body.Scroll := ''''no'''';

  注:第一种方法需要在uses部分加上MSHTML_TLB或者MSHTML。

--------------------------------------------------------------------------------------------------------

14、通过IUniformResourceLocator接口建立Internet快捷方式

  前面说到的显示“添加到收藏夹”模式对话框的方法中举了一个建立Internet快捷方式的例子,就其本身来说不太规范,属于取巧一类的方法。下面介绍的方法是通过接口来实现的。

  procedure CreateIntShotCut(aFileName, aURL: PChar);
   var IURL: IUniformResourceLocator;
   PersistFile: IPersistfile;
  begin
   if Succeeded(CoCreateInstance(CLSID_InternetShortcut,
                    nil,
                    CLSCTX_INPROC_SERVER,
                    IID_IUniformResourceLocator,
                    IURL)) then
   begin
    IUrl.SetURL(aURL, 0);
    Persistfile := IUrl as IPersistFile;
    PersistFile.Save(StringToOleStr(aFileName), False);
   end;
  end;

  其中IUniformResourceLocator接口的声明在IeConst.pas中,IeConst.pas可以在网站IE & Delphi找到; IPersistfile接口的声明在ActiveX.pas中。

  注:这个函数的AURL参数必须包含协议前缀,如“Http://eagleboost.myrice.com”。

最先发表日期:2000年07月25日

最后修改日期:2001年02月07日

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!