★★★★★★大家一起修改这个程序,相互提高编程技巧★★★★★★★★★★★

lyboy99 2001-05-02 11:23:00
下面的程序是实现在一个PageControl中,当点Button,将动态创建一页TabSheet
并且创建页上有TWebBrowser控件。请大家看看下面程序为什么不能正常编译运行。






unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, OleCtrls, SHDocVw_TLB;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Button1: TButton;
WebBrowser1: TWebBrowser;
procedure Button1Click(Sender: TObject);
private
CTabSheet:TTabSheet;
WB:TWebBrowser ;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
CTabSheet:=TTabSheet.Create(PageControl1);
CTabSheet.Parent:=PageControl1;
CTabSheet.PageControl:=PageControl1;
CTabSheet.caption:='Tab';
WB:=TWebBrowser.Create(CTabSheet);
WB.parent :=CTabSheet ;

end;

end.
...全文
116 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyboy99 2001-05-02
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
CTabSheet:=TTabSheet.Create(self);
CTabSheet.Parent:=self;
CTabSheet.PageControl:=PageControl1;
CTabSheet.caption:='Tab';
WB:=TWebBrowser.Create(self);
(WB as Twincontrol).parent:=CTabSheet ;
end;
还是不行,编译是显示错误,“Cannot assign to a read-only property"
如何解决,那位大侠指点一下。
lyboy99 2001-05-02
  • 打赏
  • 举报
回复
(WB as TWinControl).parent :=CTabSheet ; 好象也不行呀
Kingron 2001-05-02
  • 打赏
  • 举报
回复
你的这个问题我以前回答过!而且实现了动态创建和释放,就像藤讯的那个破浏览器一模一样!可惜我早不到了那个贴子了。是那个兄弟提出的那个问题,给出一个连接吧。
procedure TForm1.Button1Click(Sender: TObject);
begin
CTabSheet:=TTabSheet.Create(self);
CTabSheet.Parent:=self;
CTabSheet.PageControl:=PageControl1;
CTabSheet.caption:='Tab';
WB:=TWebBrowser.Create(self);
(WB as Twincontrol).parent:=CTabSheet ;
end;
这样应该没有问题了。
windindance 2001-05-02
  • 打赏
  • 举报
回复
(WB as TWinControl).parent :=CTabSheet ;
musicwind 2001-05-02
  • 打赏
  • 举报
回复
修正:
pcMain => PageControl1
musicwind 2001-05-02
  • 打赏
  • 举报
回复
var
Sheet: TTabSheet;
WebFrame: TMyFrame;
begin
Sheet := TTabSheet.Create(PageControl1);
Sheet.PageControl := pcMain;
Sheet.TabVisible := true;
Sheet.Caption := 'Blank ';

Sheet.Parent := pcMain;
Sheet.Show;

WebFrame := TMyFrame.Create(Sheet);
WebFrame.Parent := Sheet;
WebFrame.Align := alClient;
WebFrame.Show;


<...>
musicwind 2001-05-02
  • 打赏
  • 举报
回复
我以前做过一个多页面的浏览器,我的思路:
创建一个 TMyFrame = Class( TFrame ) , 在 该 Frame 上 放置一个 TWebBrowser,
然后动态创建 你的 TMyFrame;
这样没有问题的。

5,928

社区成员

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

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