html中点击相应按钮,调出delphi制作的窗口问题。(100分)

  • 主题发起人 主题发起人 manana
  • 开始时间 开始时间
M

manana

Unregistered / Unconfirmed
GUEST, unregistred user!
问题描述如下:
本来程序运行直接出现delphi编写的程序的窗口,现想实现一个delphi程序,要求打开的主界面是一个html格式的主界面,
然后通过html上的功能图标点击调出相应功能的delphi程序窗口。

如何实现,大家给些意见,谢谢!
 
使用TWebBrower装载页面,将要点击的图标做成超链接,响应控件的
OnBeforeNavigate2事件,判断URL决定显示你的哪个窗口,最后别忘了
将Cancel设成True!
 
歪就歪 所提的问题中有 答案
 
largefoot你好,谢谢你的答复。不过我还是不明白,希望你进一步指教。
现在我制作了一个html文件里面添加了几个当做按钮,eg:产品管理、领导查询、文件管理等
用TWebBrower装载页面,运行程序第一个界面要求就是这个html界面,要求点击产品管理会打开
frmproduct窗口,具体如何实现,谢谢!
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1497656
或许对你有帮助。
 
来自:歪就歪, 时间:2000-3-30 9:00:00, ID:208146 [显示:小字体 | 大字体]
一个程序,里面有个TWebBrowser,里面显示的HTML里有个Button,如何
才能让程序知道那个Button被Click的事件呢?

我尝试用TWebModule,但编着编着,觉得路子走歪了,好象这东西是做CGI
程序用的,也就是说,它可能非要个Internet Server才能运行,不知道是
不是这样?

那么,我怎么样才能让程序知道,它里面的TWebBrowser里的HTML里的某一个
Button被Click了呢?

如果可能,请给代码。




来自:DreamTiger, 时间:2000-3-30 13:56:00, ID:208402
搞定!
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.


来自:DreamTiger, 时间:2000-3-30 13:57:00, ID:208404
哦,那个procedure cancelLink;
是上午实验的时候留下的,没用的。



来自:y9y, 时间:2000-3-30 22:29:00, ID:208767
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.


 
谢谢各位,接受答案
 
后退
顶部