继承TPANEL问题
我继承了一个PANEL,然后在一个PANEL中添加我新继承的对象,使用的方法是INSERTCONTROL,
提示我类型错误,说我的类不是TCONTROL.我明明是从TPANEL继承的,为什么呢?
问题点数:100、回复次数:10Top
1 楼linzhengqun(风。我回来了)回复于 2006-07-03 19:30:09 得分 20
不般不要调用INSERTCONTRO,而是将你的Panel的Parent设为那个Panel即可。
VCL会自动调用INSERTCONTRO的Top
2 楼notruiyi(什么乱七八糟的)回复于 2006-07-04 09:35:15 得分 0
这样也不行.要求的PARENT要求将是TWidgetControl,现在设置成TPanel提示类型不匹配Top
3 楼notruiyi(什么乱七八糟的)回复于 2006-07-04 10:45:25 得分 0
人呢,实在没人顶一下我也好送分Top
4 楼dabaicai(烈士暮年)回复于 2006-07-04 10:49:18 得分 20
先顶,给分,呵呵
你是先通过继承panal写了个控件? 然后再在一个panal控件上面放一个你写的这个控件吗?
这样的话你先手工放一个试试,不要用语句看看结果Top
5 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-04 10:51:05 得分 5
贴出来部分代码看看。。。Top
6 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-07-04 10:59:28 得分 45
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
tp = class(TPanel)
public
lb : TLabel;
constructor Create(AOwner: TComponent); override;
end;
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
a :tp;
begin
a := tp.Create(nil);
a.Parent := Form1;
a.Left := 100;
a.Top := 200;
a.Caption := 'adsfasf';
end;
{ tp }
constructor tp.Create(AOwner: TComponent);
begin
inherited;
lb := TLabel.Create(AOwner);
lb.Parent := Self;
lb.Left := 10;
lb.Top := 10;
lb.Caption := 'haha';
end;
end.
WINXP D7下测试通过Top
7 楼notruiyi(什么乱七八糟的)回复于 2006-07-04 13:33:08 得分 0
我要的是我从TPANEL继承出来一个类,然后在其他PANEL上通过InsertControl方法插入数目不要定的新定义的类的对象Top
8 楼notruiyi(什么乱七八糟的)回复于 2006-07-05 16:02:01 得分 0
人呢
?Top
9 楼torrentwang(代码工人)回复于 2006-07-05 16:07:09 得分 10
TPanel(yourcomponent) 强制转化一下试验看看Top
10 楼notruiyi(什么乱七八糟的)回复于 2006-07-05 16:26:06 得分 0
强制转换会出现错误Top




