关于IE Twebbrowser的问题??

Nuke 2000-02-02 12:49:00
form上有Mainmenu,一个button,一个pagecontrol
用动态创建twebbrowser,每按下button一次新建一个pagecontrol,
并在tabcontrol上新建一个twebbrowser.

现在问题是当我在twebbrowser里输入内容时,如果输入字母为菜单上的
hotchar,例如有一个菜单项为FILE,打开热键为Alt+F,这时如果你在
twebbrowser的页面中的编辑栏里输入字母'F',则菜单被打开,而编辑栏
中并没有出现'F'.

这是动态create twebbrowser的问题,如果在设计时就把twebbrowser
放到form上去,则没有此问题。

下面是代码:

procedure TForm1.Button1Click(Sender: TObject);
var temp:ttabsheet;
ri:tWEBBROWSER;
begin
temp:=ttabsheet.create(self);
ri:=tWEBBROWSER.Create(self);
temp.PageControl:=pc;
temp.InsertControl(ri);
ri.Align:=alClient;;
RI.Navigate(‘http://www.yahoo.com');

end;

...全文
244 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dana 2001-06-01
  • 打赏
  • 举报
回复
使用webbrowser控件内存会越来越少吗?为何我会?
有何解决方案?
skt642 2001-05-31
  • 打赏
  • 举报
回复
44960关注!
Kingron 2001-05-14
  • 打赏
  • 举报
回复
提问者:如要继续讨论请定期提前贴子,如不想讨论请结束贴子。
SimonDW 2000-02-09
  • 打赏
  • 举报
回复
我用delphi3这么做,没问题。
建议检查一下硬件,并杀毒。
?是不是该用
var a,b,c,d:olevariant;
navigate('http://adsfsad.com',a,b,c,d);
Tommy Chang 2000-02-02
  • 打赏
  • 举报
回复
在ri.setfocus真的有效吗,你最好用tab,enter键看当前焦点是否在webbrowser中,而且据我所知,webbrowser下还有两层窗口,我试过几个方法设置焦点都失败了
Nuke 2000-02-02
  • 打赏
  • 举报
回复
呵呵,鼠标不但在编辑框里,而且我可以输入除了菜单热键以外的其他任何字符。
但一输入热键字母菜单就会自动打开!

以下是完全的代码:
可以看到,连setfocus都没作用!
why??

可能您在design time 就把twebbrowser放到tabsheet上去了吧
我一开始form上就没有任何webbrowser,完全动态创建

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Menus, ToolWin, MenuBar, OleCtrls, SHDocVw_TLB,
Buttons;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
f1: TMenuItem;
editE1: TMenuItem;
NewN1: TMenuItem;
New1: TMenuItem;
pc: TPageControl;
Button1: TButton;
MenuBar1: TMenuBar;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ri:tWEBBROWSER;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var temp:ttabsheet;
begin
temp:=ttabsheet.create(self);
ri:=tWEBBROWSER.Create(self);
temp.PageControl:=pc;
temp.InsertControl(ri);
ri.Align:=alClient;;
RI.Navigate('http://www.yahoo.com');

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ri.free;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ri.SetFocus;
end;

end.
929 2000-02-02
  • 打赏
  • 举报
回复
检查一下你的程序运行后,当生成TWEBBROWER后鼠标的位置,如果当前鼠标焦点在菜单上则按F出现菜单。我用DELPHI5做了你这个程序,当把鼠标点到网页内的编辑框后,输入菜单的热键没有出现问题。

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧