//在表单上先放入一个RzPageControl控件 或PageControl控件替代RzPageControl
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, RzTabs, ExtCtrls;type
TForm1 = class(TForm)
PageControl: TRzPageControl;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn5Click(Sender: TObject);
begin
Close;
end;procedure TForm1.BitBtn1Click(Sender: TObject);//创建RzTabSheet
var
TabSheet: TRzTabSheet;
begin
TabSheet := TRzTabSheet.Create(PageControl);
TabSheet.PageControl := Self.PageControl;
TabSheet.Name := 'TabName';
TabSheet.Caption := 'AAAA';
Self.PageControl.ActivePage := TabSheet;
end;procedure TForm1.BitBtn2Click(Sender: TObject);//在RzTabSheet里创建TScrollBox
var
ScrollBox: TScrollBox;
begin
ScrollBox := TScrollBox.Create(TRzTabSheet(PageControl.FindComponent('TabName')));
ScrollBox.Parent := TRzTabSheet(PageControl.FindComponent('TabName'));
ScrollBox.Align := alClient;
ScrollBox.Name := 'ScrName';
end;procedure TForm1.BitBtn3Click(Sender: TObject);//在TScrollBox里创建Panel控件
var
Panel: TPanel;
begin
Panel := TPanel.Create(TScrollBox(PageControl.FindComponent('ScrName')));
with Panel do
begin
Parent := TScrollBox(TRzTabSheet(PageControl.FindComponent('TabName')).FindComponent('ScrName'));
Width := 60;
Height := 60;
Name := 'PanelName';
Caption := 'BBBB';
Font.Color := clFuchsia;
Font.Size := 11;
Alignment := taCenter;
Color := clHotLight;
BevelInner := bvLowered;
BevelOuter := bvLowered;
ShowHint := True;
end;
end;procedure TForm1.BitBtn4Click(Sender: TObject);//查询所创建Panel的名字,在最后一步找不到
var
Lsbl_TabSheet: TRzTabSheet;
Lsbl_ScrollBox: TScrollBox;
Lsbl_Panel: TPanel;
begin
Lsbl_TabSheet := TRzTabSheet(PageControl.FindComponent('TabName'));
Lsbl_ScrollBox := TScrollBox(Lsbl_TabSheet.FindComponent('ScrName'));
Lsbl_Panel := TPanel(Lsbl_ScrollBox.FindComponent('PanelName')); //当此步查找时不能找到
ShowMessage(Lsbl_Panel.Caption);
end;end.各位大位上面是我的测试代码,在最后一步时为何查不到,应该如何找
是不是有更好的方法,请指都
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, RzTabs, ExtCtrls;type
TForm1 = class(TForm)
PageControl: TRzPageControl;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn5Click(Sender: TObject);
begin
Close;
end;procedure TForm1.BitBtn1Click(Sender: TObject);//创建RzTabSheet
var
TabSheet: TRzTabSheet;
begin
TabSheet := TRzTabSheet.Create(PageControl);
TabSheet.PageControl := Self.PageControl;
TabSheet.Name := 'TabName';
TabSheet.Caption := 'AAAA';
Self.PageControl.ActivePage := TabSheet;
end;procedure TForm1.BitBtn2Click(Sender: TObject);//在RzTabSheet里创建TScrollBox
var
ScrollBox: TScrollBox;
begin
ScrollBox := TScrollBox.Create(TRzTabSheet(PageControl.FindComponent('TabName')));
ScrollBox.Parent := TRzTabSheet(PageControl.FindComponent('TabName'));
ScrollBox.Align := alClient;
ScrollBox.Name := 'ScrName';
end;procedure TForm1.BitBtn3Click(Sender: TObject);//在TScrollBox里创建Panel控件
var
Panel: TPanel;
begin
Panel := TPanel.Create(TScrollBox(PageControl.FindComponent('ScrName')));
with Panel do
begin
Parent := TScrollBox(TRzTabSheet(PageControl.FindComponent('TabName')).FindComponent('ScrName'));
Width := 60;
Height := 60;
Name := 'PanelName';
Caption := 'BBBB';
Font.Color := clFuchsia;
Font.Size := 11;
Alignment := taCenter;
Color := clHotLight;
BevelInner := bvLowered;
BevelOuter := bvLowered;
ShowHint := True;
end;
end;procedure TForm1.BitBtn4Click(Sender: TObject);//查询所创建Panel的名字,在最后一步找不到
var
Lsbl_TabSheet: TRzTabSheet;
Lsbl_ScrollBox: TScrollBox;
Lsbl_Panel: TPanel;
begin
Lsbl_TabSheet := TRzTabSheet(PageControl.FindComponent('TabName'));
Lsbl_ScrollBox := TScrollBox(Lsbl_TabSheet.FindComponent('ScrName'));
Lsbl_Panel := TPanel(Lsbl_ScrollBox.FindComponent('PanelName')); //当此步查找时不能找到
ShowMessage(Lsbl_Panel.Caption);
end;end.各位大位上面是我的测试代码,在最后一步时为何查不到,应该如何找
是不是有更好的方法,请指都
解决方案 »
- ICS中的httpcli与indy中的idhttp哪个好?
- delphi的Active form的问题,哪位高手帮下忙,马上给分,急用
- 调用
- cxDBTreeList的刷新问题?
- 今天第一次接触delphi,求教,如何用delphi比较3个数的大小,
- 用adotable对数据库进行操作的问题。
- 大家帮我?
- 关于数据库的问题,困扰我好几个星期了.
- 我用delphi写了一个activeform,但是它在IE中不能正常的显示出来,请问这该怎么办??
- Delphi确实不如Power Builer吗????!!!!!!
- 如果用Delphi,在win2000或winxp或win2003的系统栏右下角显示黄色的提示框
- 高分求DLL制作中程序无法跟踪的问题。
var
Panel: TPanel;
begin
Panel := TPanel.Create(TScrollBox(PageControl.FindComponent('ScrName')));
//有问题的是这里。PageControl.FindComponent('ScrName')的结果是nil。你的上一贴的做法有问题:Parent := TScrollBox(TRzTabSheet(PageControl.FindComponent('TabName')).FindComponent('ScrName'));Parent跟Owner是不同的概念。Parent是可见控件的视觉宿主,Owner是用来实现控件的自动释放回收及枚举访问。换成下面的就没问题了:
Panel := TPanel.Create(TScrollBox(TRzTabSheet(PageControl.FindComponent('TabName')).FindComponent('ScrName')));
因为我在TScrollBox控件里动态创建很多TPanel控件,且在不定时的要改变TPanel的颜色
有没有更好的方法