taxi(游少爷)进来看看:

Linux2001 2001-12-06 09:02:50
那个WebBrowser的问题已经解决(必须是从新新建一个工程),现在我需要的是有一个打开对话框,打开一个文本文件或是HTML文件,仍然象腾讯的浏览器一样,可以在PageControl上新建一页来打开新的一页这些代码如何写啊,我用了你的方法不行、你的方法我只在新建工程中通过但是我还是会给你分,但为什么给你分CSDN说无法给分是由于用户长期不在论坛造成,我天天都在啊
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
taxi 2001-12-06
  • 打赏
  • 举报
回复
我贴出来的就是多页面浏览器呀,当你打开一个HTML文件后,也会新建一个页面浏览的。
taxi 2001-12-06
  • 打赏
  • 举报
回复
就是这样呀。
Linux2001 2001-12-06
  • 打赏
  • 举报
回复
老大,我拜托你看一下我的内容好不好啊!
taxi 2001-12-06
  • 打赏
  • 举报
回复
procedure TForm1.FormDestroy(Sender: TObject);
var
i: integer;
begin
for i := FCount - 1 downto 0 do
begin
FWebBrowsers[i].Free;
FTabSheets[i].Free;
end;
end;
taxi 2001-12-06
  • 打赏
  • 举报
回复
有个地方错了;
procedure TForm1.FormDestroy(Sender: TObject);
var
i: integer;
begin
for i :=FCount - 1 downto 0 do
begin
FTabSheets[i].Free;
FWebBrowsers[i].Free;
end;
end;

taxi 2001-12-06
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs, ComCtrls,
StdCtrls, ExtCtrls, OleCtrls, SHDocVw;

type
TForm1 = class(TForm)
Panel1: TPanel;
Edit1: TEdit;
Animate1: TAnimate;
PageControl1: TPageControl;
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure WebBrowserNewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FCount: integer;
FTabSheets: array of TTabSheet;
FWebBrowsers: array of TWebBrowser;
procedure NewWebBrowser(const Url: string);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.NewWebBrowser(const Url: string);
begin
inc(FCount);
SetLength(FTabSheets, FCount);
FTabSheets[FCount - 1] := TTabSheet.Create(self);
FTabSheets[FCount - 1].PageControl := PageControl1;
PageControl1.ActivePage := FTabSheets[FCount - 1];

SetLength(FWebBrowsers, FCount);
FWebBrowsers[FCount - 1] := TWebBrowser.Create(self);
FTabSheets[FCount - 1].InsertControl(FWebBrowsers[FCount - 1]);
with FWebBrowsers[FCount - 1] do
begin
Align := alClient;
Navigate(url);
OnNewWindow2 := WebBrowserNewWindow2
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//
end;

procedure TForm1.FormShow(Sender: TObject);
begin
//
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
//
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
i: integer;
begin
for i := 0 to FCount - 1 do
begin
FTabSheets[i].Free;
FWebBrowsers[i].Free;
end;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then close;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_RETURN then
NewWebBrowser(Edit1.Text);
end;

procedure TForm1.WebBrowserNewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
begin
NewWebBrowser('');
ppDisp := FWebBrowsers[FCount - 1].Application;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
NewWebBrowser(OpenDialog1.FileName);
end;

end.
Linux2001 2001-12-06
  • 打赏
  • 举报
回复
没有人来吗

5,392

社区成员

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

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