我对一个Label1控件进行了修改,现在我想用代码创建一个继承于Label1的控件Label2,
并把它显示在窗体上。怎么做?
并把它显示在窗体上。怎么做?
解决方案 »
- 有谁知道 TRzNavigatorButton 对应的几个按钮值是如何定义的
- 关于findfile()的问题,在线等!
- 在delphi中如何实现多副jepg图片存储数据库????
- 如何在RICHEDIT或其他类型的编辑控件中将文字隐藏,使用户无法编辑
- 远程桌面连接 实现远程拍照
- 请问在什么地方可以找到 打印条码 的字体 这种字体名称是什么??谢谢
- dbchart做曲线图,如歌根据Y轴数值不同动态改变曲线颜色。
- 我的adoquery 为什么不能正常的识别sql语句的参数?
- 问个奇怪的问题!
- 如何使用Tmemorystream
- copy_paste(木石三) 快来,需要你的屏蔽ctl+alt+del的方法
- 如何将下面的VC源码翻译成DELPHI 代码?急!在线等!
2、在label1的构造函数里,指定其的所有者(所属form);
3、创建一个label2类,继承于Label1;
4、在label2的构造函数里,指定其的所有者;
然后就是动态创建组件了。
prcedure TFormX.FormCreate(Sender: TObject);
begin
Label2:=TLabel.create;
with Label2 do
begin
parent:=FormX;
Left:=...;
Top:=...
end;
end;
我在声名一个变量Label2: TLabel1;就出错,
再者,Label2:=TLabel.create;这句话也不对阿,应为Label2:=TLabel.create(self);才能通过。
还有高手指教否?
分不够再加。
在Unit1中引用Unit1会报错。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TLabel1 = class (TLabel)
private
public
end;
type
TLabel2 = class (TLabel1)
private
public
constructor Create(AOwner: TWinControl);overload;
end;
type
TForm1 = class(TForm)
Button1: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TLabel2 }constructor TLabel2.Create(AOwner: TWinControl);
begin
inherited Create(AOwner);
self.Caption := 'aaa';
self.Parent := AOwner;end;procedure TForm1.Button1Click(Sender: TObject);
var
label3 : TLabel2;
begin
Label3 := TLabel2.Create(self);
end;end.
怎么可能从一个对象(Label1已经是类的实例了)派生出对象呢?
你的提问有问题。
如果是从TLabel类派生出子类的话,可以创建一个派生自TLabel的子类放到组件面板中去,就可以用了。
还是不行啦!执行时它提示:Label2 does not have a corresponding component.
也许我没讲清楚,我并不是要再代码里对Label1进行创建和修改,我只是在窗体上放置了一个
Label1控件,并对其属性,事件进行了修改,只是再用代码创建一个与Label1属性,事件相同的
Label2,当然,用别的方法也行,但我希望用继承的方法。
就是选中Label1,然后按Ctrl+C和Ctrl+V,就会复制出一个和Label1一样的Label2。
像:
Type
TLabel1 = class(TLabel)
procedure...
function...
private
public
end;
....var
label2: TLabel1;