Y ydchen_xm Unregistered / Unconfirmed GUEST, unregistred user! 2004-01-21 #1 我编写了一个控件,其中包含了若干个子控件。使用该控件的过程中,其中的子控件用户可以选中并删除,这是我所不希望的。TLabeledEdit在使用时其子控件TBoundLabel是不能被选中的(在Object TreeView中也不会显示),我看了半天其源代码也没看出什么特别之处。请哪位知道端倪的大虾指点。先谢过!
我编写了一个控件,其中包含了若干个子控件。使用该控件的过程中,其中的子控件用户可以选中并删除,这是我所不希望的。TLabeledEdit在使用时其子控件TBoundLabel是不能被选中的(在Object TreeView中也不会显示),我看了半天其源代码也没看出什么特别之处。请哪位知道端倪的大虾指点。先谢过!
Z zjan521 Unregistered / Unconfirmed GUEST, unregistred user! 2004-01-21 #2 请参考ComponentState,我想应该有合适的参数。 不在Object TreeView.可以尝试把Sub Control的Owner:= nil;(记得释放)
Y yostgxf Unregistered / Unconfirmed GUEST, unregistred user! 2004-01-29 #4 在控件的初试化中加: ControlStyle:=[csOpaque];
D dirk Unregistered / Unconfirmed GUEST, unregistred user! 2004-01-29 #5 >>使用该控件的过程中,其中的子控件用户可以选中并删除 你指的是在设计期间被删除吧? constructor TMyPanel.Create(AOwner: TComponent); begin inherited create(AOwner); //FButton在TMyPanel的private部分定义 // FButton:=TButton.Create(AOwner);//这样写就会出现你说的可以删除的情况 FButton:=TButton.Create(Self);//正确的应该这样写 //这里用AOwner做Owner了,结果,子控件的Owner就是Form了,这样,子控件就 //可以被拖动、删除了,应该用Self做Owner,就没问题。 end;
>>使用该控件的过程中,其中的子控件用户可以选中并删除 你指的是在设计期间被删除吧? constructor TMyPanel.Create(AOwner: TComponent); begin inherited create(AOwner); //FButton在TMyPanel的private部分定义 // FButton:=TButton.Create(AOwner);//这样写就会出现你说的可以删除的情况 FButton:=TButton.Create(Self);//正确的应该这样写 //这里用AOwner做Owner了,结果,子控件的Owner就是Form了,这样,子控件就 //可以被拖动、删除了,应该用Self做Owner,就没问题。 end;
Y ydchen_xm Unregistered / Unconfirmed GUEST, unregistred user! 2004-01-29 #6 多谢dirk。我又仔细看了一下TCustomLabledEdit的代码,发现确如您所言。我开始太不仔细了。