为了在鼠标移上与移落时,Timage中的图片响应不同的图片,想在Timage里再封装多一个Picture?如何做呢?或者有其它的方法也可以的
解决方案 »
- 调用dll时,关闭程序出错!
- 如何在oracle中取SQ_SPEC_GETLOGNO将其设置成其他表格的ID
- DELPHI 调用VC++ 编写的DLL 参数回传值的问题!请帮忙!!
- ListView在viewStyle 设置为smallIcon时,删除一项后留了个空白,有大侠遇到过吗?
- 如何使用ExtractStrings函数
- while 循环出什么问题了??
- 关于远程传送数据?
- 给点意见吧!!给建议,提供信息者有分
- 现在我想往word插入文档(比如表格)用com好还是DDE好?
- 才鸟的菜问题
- 求教:关于SHChangeNotifyRegister的问题!
- 三层结构下如何调用oracle的存储过程
private
FPicture: TPicture;就會發覺不難
我试过了,不行,运行的时候出错。
是不是TImage里不能放两个相同Picture属性的值?
MyImage = class(TImage)
private
FPicture1: TPicture;
procedure SetPicture(const Value: TPicture);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Picture1: TPicture read FPicture1 write SetPicture;
end;{ MyImage }constructor MyImage.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPicture1 := TPicture.Create;end;destructor MyImage.Destroy;
begin
FPicture1.Free;
inherited Destroy;
end;procedure MyImage.SetPicture(const Value: TPicture);
begin
FPicture1.Assign(Value);
end;
xzhifei(星级饭桶·飞)
是可以加上去,不过我对FPicture1加图片时就出错下面的错误了:
Access violation at address 40005669 in module 'rtl60.bpl'. read fo address 00000000
unit MyImages;interfaceuses
SysUtils, Classes, Controls, ExtCtrls,Graphics;type
TMyImage = class(TImage)
private
{ Private declarations }
FPicture1: TPicture;
procedure SetPicture(const Value: TPicture);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Picture1: TPicture read FPicture1 write SetPicture;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Standard', [TMyImage]);
end;{ TMyImage }constructor TMyImage.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPicture1 := TPicture.Create;end;destructor TMyImage.Destroy;
begin
FPicture1.Free;
inherited Destroy;
end;procedure TMyImage.SetPicture(const Value: TPicture);
begin
FPicture1.Assign(Value);end;end.
unit MyImages;interfaceuses
SysUtils, Classes, Controls, Messages, ExtCtrls, Graphics;type
TMyImage = class(TImage)
private
{ Private declarations }
FPicture1: TPicture;
TempPicture: TPicture; //保存原有的图像资源
procedure SetPicture(const Value: TPicture);
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Picture1: TPicture read FPicture1 write SetPicture;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('Standard', [TMyImage]);
end;{ TMyImage }procedure TMyImage.CMMouseEnter(var Message: TMessage);
begin
if Not (csDesigning in ComponentState) then
begin
TempPicture.Assign(Picture);
Picture.Assign(Picture1);
end;
end;procedure TMyImage.CMMouseLeave(var Message: TMessage);
begin
if Not (csDesigning in ComponentState) then
Picture.Assign(TempPicture);
end;constructor TMyImage.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPicture1 := TPicture.Create;
TempPicture := TPicture.Create;end;destructor TMyImage.Destroy;
begin
FPicture1.Free;
TempPicture.Free;
inherited Destroy;
end;procedure TMyImage.SetPicture(const Value: TPicture);
begin
FPicture1.Assign(Value);end;end.
可以了。多谢!