5,928
社区成员




unit ImageButton;
interface
uses
SysUtils, Classes, Controls, ExtCtrls, pngimage, Dialogs, Graphics, Messages;
type
TImageButton = class(TImage)
private
{ Private declarations }
FPictureHot: TPicture;
FPictureDown: TPicture;
FPictureDisable: TPicture;
FPictureNormal: TPicture;
Fisinbutton: Boolean;
procedure SetHotPicture(Value: TPicture);
procedure SetDownPicture(Value: TPicture);
procedure SetDisPicture(Value: TPicture);
procedure SetNormalPicture(Value: TPicture);
protected
{ Protected declarations }
procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
procedure CMLbuttonDown(var msg: TMessage); message WM_LBUTTONDOWN;
procedure CMLuttonUp(var msg: TMessage); message WM_LBUTTONUP;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property PictureHot: TPicture read FPictureHot write SetHotPicture;
property PictureDown: TPicture read FPictureDown write SetDownPicture;
property PictureDisable: TPicture read FPictureDisable write SetDisPicture;
property PictureNormal: TPicture read FPictureNormal write SetNormalPicture;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Standard', [TImageButton]);
end;
destructor TImageButton.Destroy;
begin
FPictureNormal.Free;
FPictureHot.Free;
FPictureDown.Free;
PictureDisable.Free;
inherited;
end;
constructor TImageButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPictureDown := TPicture.Create;
FPictureHot := TPicture.Create;
FPictureDisable := TPicture.Create;
FPictureNormal := TPicture.Create;
Invalidate;
end;
procedure TImageButton.CMMouseEnter(var msg: TMessage);
begin
if Fisinbutton = False then
begin
Picture.Assign(FPictureHot);
Fisinbutton:=True;
end;
end;
procedure TImageButton.CMMouseLeave(var msg: TMessage);
begin
Picture.Assign(FPictureNormal);
Fisinbutton:=False;
end;
procedure TImageButton.CMLbuttonDown(var msg: TMessage);
begin
Picture.Assign(FPictureDown);
end;
procedure TImageButton.CMLuttonUp(var msg: TMessage);
begin
Picture.Assign(FPictureNormal);
end;
procedure TImageButton.SetNormalPicture(Value: TPicture);
begin
Picture.Assign(Value);
FPictureNormal.Assign(Value);
end;
procedure TImageButton.SetHotPicture(Value: TPicture);
begin
FPictureHot.Assign(Value);
end;
procedure TImageButton.SetDownPicture(Value: TPicture);
begin
FPictureDown.Assign(Value);
end;
procedure TImageButton.SetDisPicture(Value: TPicture);
begin
FPictureDisable.Assign(Value);
end;
end.