控件在new:=Ttype.create(self)后owner为self,如何改变控件的owner? (250分)

  • 主题发起人 主题发起人 james.tane
  • 开始时间 开始时间
J

james.tane

Unregistered / Unconfirmed
GUEST, unregistred user!

var
s:Tfilestream;
begin
s:=Tfilestream.create(filename);
for i:=controlcount-1 downto 0 do
s.writecomponent(controls)
end;将控件写入文件里,
后用
var
s:Tfilestream
new;Tcomponent;
begin
new:=s.readcomponent(nil);
insertcontrol(new as Tcontro);
end;读出文件里的控件在form上生成,为什么在component里看不到。
如:
for i:=componentcount-1 downto 0 do
begin
showmessage(components.name);
end;
就看不到读出来的控件
原因是 new.owner=nil 请问如何设定控件的owner
注:owner是只读属性,不能直接通过 owner:=kkkk 来设置
 
你這樣讀:new:=s.readcomponent(nil);
本身這個控件就是nil.也就是沒有控件,
能否在readcomponent()中指定某一控件.
 
兄弟,你的程序有问题。
var
s:Tfilestream;
new:tcomponent;
begin
s:=TFileStream.Create(filename,fmOpenRead );
s.readcomponent(new);
(new as tbutton).Left :=10;
 
在form上我只放了两个button,所以才用的(new as tbutton),你可以把tbutton换成tcontrol
 
后退
顶部