读书人

image控件解决方法

发布时间: 2012-03-02 14:40:29 作者: rapoo

image控件
实现如下功能


image控件

主窗体显示时

当 enable属性为true 时显示图片A
当 enable属性为false 时显示图片B


做成控件形式怎么写

[解决办法]

Delphi(Pascal) code
unit SBImage;interfaceuses  Windows,SysUtils,Controls,Classes,Graphics,ExtCtrls,Messages;Type  TSBImage=class(TImage)  private    FDisablePicture: TPicture;    FEnablePicture: TPicture;    procedure SetDisablePicture(const Value: TPicture);    procedure SetEnablePicture(const Value: TPicture);  protected    procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;  public    Constructor Create(AOwner:TComponent);override;    Destructor Destroy;override;  published    property EnablePicture:TPicture read FEnablePicture write SetEnablePicture;    property DisablePicture:TPicture read FDisablePicture write SetDisablePicture;  end;implementation{ TSBImage }procedure TSBImage.CMEnabledChanged(var Message: TMessage);begin  if not Enabled  then Picture:=Self.FDisablePicture  else Picture:=Self.FEnablePicture;end;constructor TSBImage.Create(AOwner: TComponent);begin  inherited;  FDisablePicture:=TPicture.Create;  FEnablePicture:=TPicture.Create;end;destructor TSBImage.Destroy;begin  FreeAndNil(FDisablePicture);  FreeAndNil(FEnablePicture);  inherited;end;procedure TSBImage.SetDisablePicture(const Value: TPicture);begin  FDisablePicture.Assign(Value);  Invalidate;end;procedure TSBImage.SetEnablePicture(const Value: TPicture);begin  FEnablePicture.Assign(Value);  Invalidate;end;end.procedure TForm3.FormCreate(Sender: TObject);begin  FSBImage:=TSBImage.Create(Self);  FSBImage.EnablePicture.LoadFromFile('E:\Enable.png');  FSBImage.DisablePicture.LoadFromFile('E:\Disable.png');  FSBImage.Parent:=Self;  FSBImage.Align:=alClient;end;procedure TForm3.Timer1Timer(Sender: TObject);begin  FSBImage.Enabled:=Not FSBImage.Enabled;end; 

读书人网 >.NET

热点推荐