感谢楼主,借用一下贵宝地:)请问楼上的大侠,要是在制作组件时,动态创建该怎么做? (以上的代码在应用程序中不会出错,但是在定制控件时,如果想在PageControl中 创建一个TabSheet的话,会出现“Control '' has no parent window”的错误。 就算是设置了Parent还是会出错。)参考我的问题,请各位帮忙: http://expert.csdn.net/Expert/TopicView1.asp?id=2452493
for i:=1 to n do begin tabSheet1 := TTabSheet.Create( Application ); tabSheet1.Parent := frmMain.PageControl1; tabSheet1.pageControl := frmMain.PageControl1; tabsheet1.Name := 'tabsheetX' + IntToStr(i); end;使用'tabsheetX'是为了保证不与现有的Tabsheet同名 在tabsheet中创建groupbox通上如果创建个数有上限的话,不妨定义一个数组来存储创建的Tabsheet,以便使用时方便。 var arr: array[1..n] of integer;var tabsheet1 : Ttabsheet; for i:=1 to n do begin tabSheet1 := TTabSheet.Create( Application ); tabSheet1.Parent := frmMain.PageControl1; tabSheet1.pageControl := frmMain.PageControl1; tabsheet1.Name := 'tabsheetX' + IntToStr(i); arr[i] := Integer(tabsheet1); end;使用时,用Ttabsheet(arr[i])来访问
tabSheet1.Parent := frmMain.PageControl1;
tabSheet1.pageControl := frmMain.PageControl1;
(以上的代码在应用程序中不会出错,但是在定制控件时,如果想在PageControl中
创建一个TabSheet的话,会出现“Control '' has no parent window”的错误。
就算是设置了Parent还是会出错。)参考我的问题,请各位帮忙:
http://expert.csdn.net/Expert/TopicView1.asp?id=2452493
begin
tabSheet1 := TTabSheet.Create( Application );
tabSheet1.Parent := frmMain.PageControl1;
tabSheet1.pageControl := frmMain.PageControl1;
tabsheet1.Name := 'tabsheetX' + IntToStr(i);
end;使用'tabsheetX'是为了保证不与现有的Tabsheet同名
在tabsheet中创建groupbox通上如果创建个数有上限的话,不妨定义一个数组来存储创建的Tabsheet,以便使用时方便。
var
arr: array[1..n] of integer;var
tabsheet1 : Ttabsheet;
for i:=1 to n do
begin
tabSheet1 := TTabSheet.Create( Application );
tabSheet1.Parent := frmMain.PageControl1;
tabSheet1.pageControl := frmMain.PageControl1;
tabsheet1.Name := 'tabsheetX' + IntToStr(i);
arr[i] := Integer(tabsheet1);
end;使用时,用Ttabsheet(arr[i])来访问
我一直不懂,TabSheet1是一个控件啊(对象),它其实是一个整数值吗?怎么能用一个整数来表示呢?(不好意思,偶初学Delphi,还望指教:)