关于HTML控件的几个问题

polaris 2000-03-14 02:44:00
关于HTML控件:
怎样获取其<TITLE></TITLE>名称?
怎样使其弹出POPMENU,且能执行POPMENU中相应的命令?
我想使其象滑轮MOUSE一样上下滚动,用下面的代码为值么不行?
SetScrollPos(html1.hwnd,SB_VERT,0,TRUE);
postmessage(html1.hwnd,WM_VSCROLL,SB_LINEUP,0);
html1.Update;
有没有好的办法可以将HTML文件转化为TXT文本?
...全文
204 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gey 2000-04-12
  • 打赏
  • 举报
回复
关注
polaris 2000-04-06
  • 打赏
  • 举报
回复
您的程序很有启发,我想在WebBrowser上弹出特定的菜单,所以用鼠标的右键点击的位置来判定,可是这样并不好,如果有多个popmenu就太繁琐了,有其他好的方法吗?

另外,如果在webBrowser上用自己的菜单,如何能将所选的文本拷贝出来。我对使用ole调用ie并不在行,仍请实例一段代码,好吗
渤海海峡 2000-04-03
  • 打赏
  • 举报
回复
同意 shown.
to get source code:

uses MSHTML_TLB;

procedure TForm1.Button1Click(Sender: TObject);
var
Doc : IHtmlDocument2 ;
begin
Doc := Webbrowser1.Document as IHtmlDocument2;
Memo1.Clear;
Memo1.lines.add(trim(doc.body.innerHtml));
{also body.outertext,body.innertext and body.outerhtml}
end;

鼠标右键
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,OleCtnrs, StdCtrls, OleCtrls, SHDocVw_TLB, Menus,
OleConst, ActiveX;

type
TForm1 = class(TForm)
Button1: TButton;
PopupMenu1: TPopupMenu;
OpenDialog1: TOpenDialog;
Save1: TMenuItem; {popupmenu savepage item}
SaveDialog1: TSaveDialog;
WebBrowser1: TWebBrowser;
procedure MessageLoop(var Msg:TMsg;var Handled:Boolean);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Save1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.MessageLoop(var Msg: TMsg; var Handled: Boolean);
var mouse:Tpoint;
begin
if (Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP) then begin
handled:=True;
getcursorpos(Mouse);
popupmenu1.popup(Mouse.x,Mouse.y);
end
else Handled := False
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.execute;
webbrowser1.oleobject.navigate(opendialog1.filename);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := MessageLoop;
end;

procedure TForm1.Save1Click(Sender: TObject);
var
persist :ipersistfile;
begin
persist := (webbrowser1.document as ipersistfile);
persist.save('c:\a.html',false);
showmessage('page saved as c:\a.html');
end;

end.
polaris 2000-04-02
  • 打赏
  • 举报
回复
ace:Thanks
关于将HTML文件转化为TXT文本,我用以下代码实现了
var
ATitle : OleVariant;
begin
memo1.lines.Add( webBrows.OleObject.Document.body.outertext);
end;

顺问: 如何选出HTML文件的一段,如<head></head>之间的代码.我想找到特定的script命令后,在离线浏览时将其删去,以避免弹出新的小窗口.
polaris 2000-04-02
  • 打赏
  • 举报
回复
shown兄:
能详细说一下吗?我对ie ole控件也不熟悉.
shown 2000-03-26
  • 打赏
  • 举报
回复
使用Dynamic HTML中的Document Object Model对象:IHTMLDocument2,....,能完全控制HTML。
polaris 2000-03-26
  • 打赏
  • 举报
回复
请问ace:
我也有同样的问题:Dephi4 THTML,Delphi5 TWebBrowse两个控件都不支持其属性中的PopMenu, 在Delphi4我用Sendmessage(HTML1.handle,WM_COPY,0)还可以拷贝,在Delphi5中用这个命令也不行,他自带的右建菜单中的拷贝似乎调用了ie50,但实际上根本拷贝不出文本。
hubdog 2000-03-14
  • 打赏
  • 举报
回复
分给的太少了,每个小问题至少50分:(
ace 2000-03-14
  • 打赏
  • 举报
回复
1
var
ATitle : OleVariant;
Temp : string;
begin
ATitle := AWeb.OleObject.Document.All.Tags('TITLE').item(0);
Temp := ATitle.text;
end;
2.不明白什么意思,放个popupmenu不行么?
3.不知道
4.body.outerText应该比较好

5,379

社区成员

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

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