首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

image控件,该怎么解决

2013-01-05 
image控件实现如下功能image控件主窗体显示时当enable属性为true时显示图片A当enable属性为false 时显示图

image控件
实现如下功能


image控件

主窗体显示时

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


做成控件形式怎么写
[解决办法]



unit SBImage;

interface

uses
  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;








热点排行