image控件
实现如下功能
image控件
主窗体显示时
当 enable属性为true 时显示图片A
当 enable属性为false 时显示图片B
做成控件形式怎么写
[解决办法]
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;