值得高手强烈关注的问题!!!怎样使自定义部件中的各个控件在设计期能移动、调整位置!!!(110分)

  • 主题发起人 主题发起人 V_Lucky
  • 开始时间 开始时间
V

V_Lucky

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在在做一个部件 TMyChart,是从 Tchart 继承过来的。但我同时在 chart 上动态
加了一个panel和一个label控件,我想让使用者在设计期能移动、调整 TMyChart
上的panel和label控件的位置,应该怎么办?
 
控件已被注册了,有点难。
可用frame代替。
 
我现在是基于 CHART 控件开发,所以一定要用 CHART 的功能加上我开发的功能。

可惜的是 CHART 控件不是 Borland 公司开发的,所以没有原代码,故向各位高手请教!
 
高手关注啊!!!!!!!!!!!!!
 
给TMyChart增加针对panel和label的属性不行吗?
 
可以做到的,
不能移动一个panel和一个label控件的原因是,Panel和Label的Owner都是MyChart,
Delphi认为他们是MyChart里面的,在Delphi中所有控件的Owner都应该是Form才能动
在Create中建立Panel和Label时你这样写试试
if Self.Owner is TCustomForm then
begin
Panel.Create(TCustomForm(Self.Owner));
Label.Create(TCustomForm(Self.Owner));
end

记着最后释放哦,现在他们的Owner不是MyChart了,不会自动释放了
 
:203010, 你好!

首先,谢谢你的关注!

不过你的方法还是不行。请继续关注!
 
203010的基本想法没有错,不过程序写得可能不太对

constructor TMyChart.Create(aOwner: TComponent);
begin
inherited;
...
FPanel:=TPanel.Create(aOwner); // Owner继承TMyChart的Owner
FPanel.Parent:=Self; // Parent设置为TMyChart,限定FPanel是TMyChart的子控件
// 设置 FPanel的其它参数
FLabel:=TLabel.Create(aOwner);
FLabel.Parent:=Self;
// 设置 FLabel的其它参数
...
end;

同样的,TMyChart释放时记得显式地释放FPanel和FLabel
 
:skyweb:你好!

你能让属于 CHART 的 PANEL 和 LABEL 在

设计期 能与 IDE 交互吗?

比如移动 PANEL 或者 LABEL 、设置 PANEL 或者 LABEL 的属性等。。。

请帮忙,十分感谢!!!
 
多谢skyweb,现在应该可以了八吧
 
多人接受答案了。
 
后退
顶部