昨晚研究这个控件,需要在窗体上放置数据源对象,但如果在实际使用中不知道有多少个数据集呢?
在网上搜了很久,找到一种方式动态创建。https://wedelphi.com/t/41276/
抄完,运行,不得。没有数据源。在窗体上放了两个,就出来两个,一直好奇我动态增加的跑哪去了?
之前也想过用self.commponts.add() 方法,不会加。
后来在网上找到一个方法。https://blog.csdn.net/weixin_41660162/article/details/79828210
联系到了本人。在指导下,把源码编译后可以实现效果。反复查看。找到原因如下:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to 5 do
begin
// pp := TppDBPipeline.Create(nil);
pp := TppDBPipeline.Create(self);
pp.Name:='pp_name'+inttostr(i) ;;
pp.UserName:='pp_'+inttostr(i) ;
pp.DataSource:=DataSource1;
pp.DataSource.DataSet:=adoquery1;
// ppDesigner1.Free;
end;
ppDesigner1.ShowModal;
end;
原来效果出不来的原因即。创建报表数据源时指定了nil.导致创建的对象没有在窗体上。
疑惑:为什么控件不指定一个数组类的数据源属性?