读书人

小弟我只是想给控件加个图片而已求帮

发布时间: 2012-03-31 13:13:26 作者: rapoo

我只是想给控件加个图片而已,求帮忙
我在写一个控件,如果把图片加载属性里,老是报内存错误,现象应该是TPICURE没有创建出来,但我在CREATE里面肯定是创建了的
为了简单直观,我写了个加TPICTURE的小例子,依然有这个错误,大家帮忙看下
下面是代码:

unit NumEdit; //单元名称
Interface
uses //该控件需要调用的单元
SysUtils, Classes, Controls, StdCtrls,ExtCtrls,Graphics,messages;
type
TNumEdit = class(TImage) //控件类,继承自TEdit
private //私有成员
{ Private declarations }
FPic:TPicture;
procedure setPic(Value: TPicture);

procedure PicChanged(sender:TObject);
procedure Paint;override;
procedure WMSize(var Message: TWMSize); message WM_SIZE;
protected //保护成员
{ Protected declarations }
public //公有成员
{ Public declarations }
constructor Create(AOwner:TComponent);
published //发布成员
{ Published declarations }
property Pic:TPicture read FPic write setPic;

end;
procedure Register; //过程声明
implementation

//下面函数功能是将控件TNumEdit的图标显示在Samples面板上。

procedure Register;
begin
RegisterComponents('Samples', [TNumEdit]);
end;
{ TNumEdit }

constructor TNumEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPic:=TPicture.Create;
Fpic.OnChange:=PicChanged;
end;

procedure TNumEdit.Paint;
begin
inherited;
end;

procedure TNumEdit.PicChanged(sender: TObject);
begin
self.Invalidate;
end;

procedure TNumEdit.setPic(Value: TPicture);
begin
FPic.Assign(Value);
end;

procedure TNumEdit.WMSize(var Message: TWMSize);
begin
paint;
end;

end.

[解决办法]
constructor Create(AOwner:TComponent); 有问题,应该是
constructor Create(AOwner:TComponent); override;吧

读书人网 >.NET

热点推荐