初学编写组件,因为image控件的父类中没有caption属性,如何将这个属性加进去呢
解决方案 »
- 如何计算图像的MTF值? delphi
- 我想实现类似QQ弹出聊天窗口那样的子窗口
- **** 并非老调重弹!是没有好的方案!Row cannot located for updating.Some values may have been changed since it was last read
- 谁有本事写的MIS系统在普通广域网中的速度达到局域网中的速度?
- D8的优势
- sql2000中的image类型的问题!在线等待!!!!!
- 急急急.....把一个已有程序放到我自己程序的指定位置上。去掉标题栏
- 大家帮忙看看错在哪儿
- Delphi中数据库操作Filter的原理,他和SQL语句查询输出的结果有什么不同?
- UDP数据包通过串口转发后会改变吗?
- 请问如何得到上月的一号以及上月的最后一天.100分,谢谢
- 关于High()函数的问题
Tcustomimg=class(TImage);
private
FCaption:String;
procedure setcaption(value:String);
published
property Caption:String write setCaption read Fcaption; //--增加属性
end;
...
procedure TCustomImg.setcaption(value:String);
begin
Fcaption:=value;
end;
....
我试过,编译通不过
然后自己加上caption的属性就可以了
Sorder(剑客)应该就满足条件了等我给你写一个看看
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
end;
TNewImage = class(TImage)
private
fcaption : string;
procedure setcaption(captionstring:string);
published
property caption : string read fcaption write setcaption;
end;
var
Form1: TForm1;
image1:TNewImage;implementation{$R *.dfm}
procedure TNewImage.setcaption(captionString:string);
begin
fcaption:=captionString;
end;end.
------------------------------------------------------------
delphi7下面编译通过了
编译是可以通过,但是实际使用控件时,输入caption属性值并不能在控件上显示。这是为什么呢?
我刚才写的那个是在image上添加了一个string的属性
那个东西只能保存string类的数据但是不能显示
如果你想要显示的话
就在public里面定义一个Tlabel的属性
然后写一个setcaptionlabel1.caption:=captionstring;就可以了
Taa=class(TImage)
private
fcaption : string;
procedure setcaption(captionstring:string);
protected
procedure Paint; override;
published
property caption : string read fcaption write setcaption;
end; TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
Image1:Taa; public
{ Public declarations }
end;
var
Form1: TForm1;implementation{$R *.dfm}{ Taa }procedure Taa.setcaption(captionstring: string);
begin
fcaption:=captionString;
end;
procedure Taa.Paint;
begin
inherited;
Canvas.Brush.Style:=bsClear;
Canvas.TextOut(0,0,self.caption);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Image1:=Taa.Create(self);
Image1.Parent:=self;
Image1.caption:='asdasdasd';
Image1.Visible:=True;
image1.Picture.LoadFromFile('D:\ShippingOrder\bmp\050.bmp');
DoubleBuffered:=true;
end;
天啊,如果我一个界面上有多个image,那启不是每个都要这样写,不然的话就闪烁得不行?
不好意思,因为你的设置是在FormCreate里实现的。我想知道如何把他写到组件中直接应用就可以呢?