到,是ToolBar抢先处理了按键(因为ToolBar本身就设计为用来实现具有Windows新风格的菜单),所以只需要修改ToolBar的源代码中处理菜单按键的那部分代码即可,方法如下: 1)、在$(Delphi)/source/vcl目录下找到comctrls.pas,拷贝到自己的程序所在目录,然后打开它。 2)、找到TToolBar.CMDialogChar过程,把过程体注释掉(如果你愿意的话,可以修改它)。 3)、重新编译自己的
程序。 怎么样,是不是很简单?但它确实有效。 • 去掉TWebBrowser的滚动条 缺省地,TWebBrowser是滚动条的,虽然我们可以在网页中设置不需要滚动条,不过,有些时候可能会有特殊的要求,比如,网页是有滚动条的,但又想去掉它该怎么办呢?很简单,下面给出两行代码,都可以达到目的,可谓殊途同归。 1)、IHTMLBodyElementDisp(IHTMLDocument2(WebBrowser1.document).body).scroll:= ‘no‘; 2)、WebBrowser1.oleobject.Document.body.Scroll := ‘no‘; 注:第一种方法需要在uses部分加上MSHTML_TLB或者MSHTML。 • 通过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”。 • 自动登录操作 利用Delphi的Olevariant类型 [Post=88] 单个frames的输入 var o : Olevariant; begin o := WebBrowser.OleObject.document.all.item(‘LoginUserID‘,0); //找到登录用户名的输入框 o.value := ‘TEST‘; o := WebBrowser.oleobject.document.all.item(‘LoginPassword‘,0); //找到登录密码的输入框 o.value := ‘TEST‘ WebBrowser.oleobject.document.Forms.Item(0, 0).submit; //第一个表单提交 { o :=WebBrowser.oleobject.document.all.item(‘Login‘,0); //或者用指定表单名称提交 o.Click; //点击操作,对其它对象也可同样操作 } end; 多个frames的输入,FrameIndex为Frame的序号 var o : Olevariant; begin //找到登录用户名的输入框 o := WebBrowser.oleobject.document.documentelement.document.frames.item(FrameIndex).document.all.item(‘LoginUserID‘,0); o.value := ‘TEST‘; //找到登录密码的输入框 o := WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.all.item(‘LoginPassword‘,0); o.value := ‘TEST‘ //第一个表单提交 WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.Forms.Item(0, 0).submit; { //或者用指定表单名称提交 o :=WebBrowser.oleobject.document.d