TWebBrowser中的HTML的BUTTON(这应该是挺难的了吧?)(200分)

  • 主题发起人 主题发起人 歪就歪
  • 开始时间 开始时间
这个问题里面,浏览器是自己的,当然没问题.
 
y9y:
你先打开工程文件,运行run|Registry ActiveX Server...就行。

其实许多代码是Delphi自动生成的,不必看他!
 
hehe,cAkk的方法和我说的大同小异,都是调用对象嘛,其实就是
类似下面的语句才是关键的:
OBJECT classid=clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B id=wsh
你要是确实想要一个例子,等我晚上有空的吧。
 
前卫的方法估计也差不多.

其实这个ActiveX对象不用自己写的,window自己的wscript就可以用了,呵呵
 
cAkk:

抱歉,刚才看到你的话,却怎么也荡不下说话框了,我就只好给你写了EMAIL
在rXXXXX@163.net里。
 
cAkk:
方法与你门的不一样,你们的程序在想Exe传递参数时比较麻烦,是通过命令行
传的,如果时运行后呢,如何传???
 
什么叫运行后??? 程序得到参数运行,然后就结束了,直到下一次被调用才再次运行.
 
y9y: 给你回信了.

你可以在表单调用的小exe文件里面向TWebBrowser所在的程序sendmessage
 
搞定!
e:/temp/1.htm为:

《p》
《input type="button" value="Button1" name="B1" onclick="location='b1.htm'"》
《input type="button" value="Button2" name="B2" onclick="location='b2.htm'"》
《input type="button" value="Button3" name="B3" onclick="location='b3.htm'"》
《input type="button" value="Button4" name="B4" onclick="location='b4.htm'"》
《/p》

程序:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleCtrls, SHDocVw,MSHtml;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch
var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant
var Cancel: WordBool);
public
bLoaded:boolean;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure cancelLink;
begin
ShowMessage('Click');
end;

//调入需要的页面
procedure TForm1.Button1Click(Sender: TObject);
begin
bLoaded := false;
WebBrowser1.Navigate('file://e:/temp/1.htm');
bLoaded := true;
end;

//检查调入的页面
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch
var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant
var Cancel: WordBool);
var
sUrl:string;
begin
if bLoaded then //如果bLoaded = false,表示是正常程序调入页面
begin
//bLoaded = true,是用户单击Button进行浏览。
sUrl := String(URL);
//可以根据sUrl来判断用户点击了那个Button。
//也可以根据sUrl来判断是否应该继续浏览页面
//这里假设页面只有button,不再继续浏览。
Cancel := true;
ShowMessage(sUrl);
end;
end;

end.
 
哦,那个procedure cancelLink;
是上午实验的时候留下的,没用的。
 
DreamTiger:

Sorry, can not speak chinese now. But my comment to your code with PinYin:

Jue(2) Le(4)

Thanks, it is what I want as far as I test.
 
呵呵,受cAkk的Button1234的启发,而且刚好前段时间一直在捉摸TWebBrowser。
 
多人接受答案了。
 
后退
顶部