如何禁止IE |
尚未結案
|
wzpuma
一般會員 發表:10 回覆:19 積分:5 註冊:2003-02-27 發送簡訊給我 |
我在Form上放了WebBrowser控件和TShellListView控件,希望双击TShellListView后在WebBrowser中打开本机中的 HTML文件,代码如下:
procedure TForm1.ShellListView1DblClick(Sender: TObject);
var Flags: OLEVariant;
begin
if ShellListView1.SelectedFolder<>nil then
begin
Flags := 0;
WebBrowser1.Navigate(ShellListView1.SelectedFolder.PathName, Flags, Flags, Flags, Flags);
end;
end;
不料在WebBrowser1打开HTML文件的同时,又跳出IE。该如何禁止IE多此一举?
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
procedure Tindex.open_cmdClick(Sender: TObject);
var a,b,c,d:olevariant;
begin
if opendialog1.Execute then
edit1.text:=opendialog1.FileName;
if opendialog1.FileName<>'' then
webbrowser1.Navigate(opendialog1.filename,a,b,c,d);
end; 对WEBBROWER的WebBrowser1NewWindow2 WebBrowser1BeforeNavigate2事件处理一下就可以了。 procedure Tindex.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
newweb : TWebBrowser;
begin
//对于WINDOWS2的处理
newweb := TWebBrowser.Create(self);
newweb.Align := alClient;
newweb.OnNewWindow2 := WebBrowser1NewWindow2;
newweb.OnBeforeNavigate2 := WebBrowser1BeforeNavigate2;
ppDisp := newweb.DefaultDispatch; end; procedure Tindex.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
;
end; 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
wzpuma
一般會員 發表:10 回覆:19 積分:5 註冊:2003-02-27 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
加了WebBrowser1NewWindow2 WebBrowser1BeforeNavigate2事件,还是跳出IE。
另外说明一点:就是要用TShellListView控件(因为它好看),不用opendialog控件和TFileListBox控件。若用TFileListBox控件早就没这问题了。 不论你用TShellListView,还是opendialog控件和TFileListBox控件。其实都一样。就是将文件及存放路径取出来。
我上面提供的方法可以防止弹出窗口的,这些我都试过!!!! 供参考! 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
wzpuma
一般會員 發表:10 回覆:19 積分:5 註冊:2003-02-27 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
引言: 我在Form上放了WebBrowser控件和TShellListView控件,希望双击TShellListView后在WebBrowser中打开本机中的 HTML文件,代码如下: procedure TForm1.ShellListView1DblClick(Sender: TObject); var Flags: OLEVariant; begin if ShellListView1.SelectedFolder<>nil then begin Flags := 0; WebBrowser1.Navigate(ShellListView1.SelectedFolder.PathName, Flags, Flags, Flags, Flags); end; end; 不料在WebBrowser1打开HTML文件的同时,又跳出IE。该如何禁止IE多此一举?你上面的程序,只不过是将ShellListView1.SelectedFolder.PathName的路径取出来,然后在WEBBROWER中显示出列表。这是WEBBROWER调用WIN的资源管理器,你在其中点击相关文件,就如同在资源管理器中的操作一样的!!! 你可以用TSHELLLISTVIEW 其它控件显示文件及名称,然后直接将ShellListView1.SelectedFolder.PathName 文件名的形式给WEBBROWER的NAVIGATE的方法,不就可以实现了吗? 供参考!!!! 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
wzpuma
一般會員 發表:10 回覆:19 積分:5 註冊:2003-02-27 發送簡訊給我 |
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
//用这个方法可行,我实验过!!!! procedure TForm1.ShellListView1DblClick(Sender: TObject);
var Flags: OLEVariant;
begin
Flags := 0;
if ShelllistView1.SelectedFolder<>nil then
WebBrowser1.Navigate(ShelllistView1.SelectedFolder.PathName, Flags, Flags, Flags, Flags) end; procedure TForm1.ShellListView1DragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
if ShelllistView1.SelectedFolder.SubFolders then
ShelllistView1.AutoNavigate :=true
else
ShelllistView1.AutoNavigate :=false;
end; 风花雪月 e梦情缘
------
风花雪月 e梦情缘 |
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
上面的方法,有不足的。我修改如下: ShellListView1.Root不能使用rfDesktop等形式,需要使用路径形式。
如 ShellListView1.Root:='c:\'; 首先设置
ShellListView1.AutoRefresh :=true;
ShellListView1.AutoNavigate:=false; procedure TForm1.ShellListView1DblClick(Sender: TObject);
var Flags: OLEVariant;
begin if not ShellListView1.SelectedFolder.SubFolders then
WebBrowser1.Navigate(ShelllistView1.SelectedFolder.PathName, Flags, Flags, Flags, Flags)
else
ShellListView1.Root :=ShelllistView1.SelectedFolder.PathName; end; 风花雪月 e梦情缘
發表人 - wnhoo 於 2003/05/08 12:48:44
------
风花雪月 e梦情缘 |
wzpuma
一般會員 發表:10 回覆:19 積分:5 註冊:2003-02-27 發送簡訊給我 |
照你所言“ShellListView1.Root不能使用rfDesktop等形式,需要使用路径形式”,
问题是解决了。但ShellListView1.Root使用路径形式有很大缺陷,如指定 ShellListView1.Root:='c:\';则无法切换到其他目录。不知能否用修改ShellTreeView的属性使之回到上一层目录?
若ShellListView1.Root使用rfDesktop形式,运行时又常会出错(如DblClick *.DOC文件)。
HELP中咋没有ShellTreeView和ShellListView?
|
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
wzpuma
一般會員 發表:10 回覆:19 積分:5 註冊:2003-02-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |