在网上下在了一个TImgBtn组件
可是怎么安装啊?没有dpk文件
只有一个.Pas 和一个.res文件
.pas内容如下
unit ImgBtn;//* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *//
//* ImgBtn. Delphi 3, 4
//*
//* This component turns 3 images to button with 3 states : normal, MouseOver
//* and Pressed. I've also added some importent events.
//*
//* Writen by Paul Krestol.
//* For contacts e-mail me to : [email protected]
//* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *//
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;type
TOnMouseEvent = procedure( Msg: TWMMouse ) of object; TImgBtn = class( TImage )
protected
procedure WMMouseEnter( var Msg : TWMMouse ); message CM_MOUSEENTER;
procedure WMMouseLeave( var Msg : TWMMouse ); message CM_MOUSELEAVE;
procedure WMLButtonUp( var Msg : TWMLButtonUp ); message WM_LBUTTONUP;
procedure WMLButtonDown( var Msg : TWMLButtonUp ); message WM_LBUTTONDOWN;
private
FEntered : boolean;
FDown : boolean;
FOnMouseEnter : TOnMouseEvent;
FOnMouseLeave : TOnMouseEvent;
FOnMouseDown : TOnMouseEvent;
FOnMouseUp : TOnMouseEvent;
FPic : TPicture;
FPicDown : TPicture;
FPicUp : TPicture;
FSupported : boolean;
procedure SetPic( Value : TPicture );
procedure SetPicDown( Value : TPicture );
procedure SetPicUp( Value : TPicture );
public
constructor Create( AOwner: TComponent ); override;
destructor Destroy; override;
published
//** Images **//
property Pic : TPicture read FPic write SetPic;
property PicDown : TPicture read FPicDown write SetPicDown;
property PicUp : TPicture read FPicUp write SetPicUp;
//** Events **//
property OnMouseDown : TOnMouseEvent read FOnMouseDown write FOnMouseDown;
property OnMouseEnter : TOnMouseEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave : TOnMouseEvent read FOnMouseLeave write FOnMouseLeave;
property OnMouseUp : TOnMouseEvent read FOnMouseUp write FOnMouseUp;
property Supported : boolean read FSupported write FSupported;
end;procedure Register;implementation
{$R *.RES}(*******************************************************************************)
procedure Register;
begin
RegisterComponents( 'Plus', [ TImgBtn ] );
end;(*******************************************************************************)
constructor TImgBtn.Create;
begin
inherited;
FPic := TPicture.Create;
FPicUp := TPicture.Create;
FPicDown := TPicture.Create;
FEntered := False;
FDown := False;
FSupported := True;
end;(*******************************************************************************)
destructor TImgBtn.Destroy;
begin
FPic.Free;
FPicDown.Free;
FPicUp.Free;
inherited;
end;(*******************************************************************************)
procedure TImgBtn.WMMouseEnter( var Msg: TWMMouse );
begin
if not FSupported then Exit;
FEntered := True;
if FDown then Picture := FPicDown else Picture := FPicUp;
if Assigned( FOnMouseEnter ) then FOnMouseEnter( Msg );
end;(*******************************************************************************)
procedure TImgBtn.WMMouseLeave( var Msg: TWMMouse );
begin
if not FSupported then Exit;
FEntered := False;
Picture := FPic;
if Assigned( FOnMouseLeave ) then FOnMouseLeave( Msg );
end;(*******************************************************************************)
procedure TImgBtn.WMLButtonDown(var Msg: TWMMouse);
begin
inherited;
if not FSupported then Exit;
FDown := True;
if FEntered then Picture := FPicDown;
if Assigned( FOnMouseDown ) then FOnMouseDown( Msg );
end;(*******************************************************************************)
procedure TImgBtn.WMLButtonUp(var Msg: TWMMouse);
begin
inherited;
if not FSupported then Exit;
FDown := False;
if FEntered then Picture := FPicUp;
if Assigned( FOnMouseUp ) then FOnMouseUp( Msg );
end;(*******************************************************************************)
procedure TImgBtn.SetPic( Value : TPicture );
begin
Picture := Value;
FPic.Assign( Value );
end;(*******************************************************************************)
procedure TImgBtn.SetPicDown( Value : TPicture );
begin
FPicDown.Assign( Value );
end;(*******************************************************************************)
procedure TImgBtn.SetPicUp( Value : TPicture );
begin
FPicUp.Assign( Value );
end;end.
可是怎么安装啊?没有dpk文件
只有一个.Pas 和一个.res文件
.pas内容如下
unit ImgBtn;//* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *//
//* ImgBtn. Delphi 3, 4
//*
//* This component turns 3 images to button with 3 states : normal, MouseOver
//* and Pressed. I've also added some importent events.
//*
//* Writen by Paul Krestol.
//* For contacts e-mail me to : [email protected]
//* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *//
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;type
TOnMouseEvent = procedure( Msg: TWMMouse ) of object; TImgBtn = class( TImage )
protected
procedure WMMouseEnter( var Msg : TWMMouse ); message CM_MOUSEENTER;
procedure WMMouseLeave( var Msg : TWMMouse ); message CM_MOUSELEAVE;
procedure WMLButtonUp( var Msg : TWMLButtonUp ); message WM_LBUTTONUP;
procedure WMLButtonDown( var Msg : TWMLButtonUp ); message WM_LBUTTONDOWN;
private
FEntered : boolean;
FDown : boolean;
FOnMouseEnter : TOnMouseEvent;
FOnMouseLeave : TOnMouseEvent;
FOnMouseDown : TOnMouseEvent;
FOnMouseUp : TOnMouseEvent;
FPic : TPicture;
FPicDown : TPicture;
FPicUp : TPicture;
FSupported : boolean;
procedure SetPic( Value : TPicture );
procedure SetPicDown( Value : TPicture );
procedure SetPicUp( Value : TPicture );
public
constructor Create( AOwner: TComponent ); override;
destructor Destroy; override;
published
//** Images **//
property Pic : TPicture read FPic write SetPic;
property PicDown : TPicture read FPicDown write SetPicDown;
property PicUp : TPicture read FPicUp write SetPicUp;
//** Events **//
property OnMouseDown : TOnMouseEvent read FOnMouseDown write FOnMouseDown;
property OnMouseEnter : TOnMouseEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave : TOnMouseEvent read FOnMouseLeave write FOnMouseLeave;
property OnMouseUp : TOnMouseEvent read FOnMouseUp write FOnMouseUp;
property Supported : boolean read FSupported write FSupported;
end;procedure Register;implementation
{$R *.RES}(*******************************************************************************)
procedure Register;
begin
RegisterComponents( 'Plus', [ TImgBtn ] );
end;(*******************************************************************************)
constructor TImgBtn.Create;
begin
inherited;
FPic := TPicture.Create;
FPicUp := TPicture.Create;
FPicDown := TPicture.Create;
FEntered := False;
FDown := False;
FSupported := True;
end;(*******************************************************************************)
destructor TImgBtn.Destroy;
begin
FPic.Free;
FPicDown.Free;
FPicUp.Free;
inherited;
end;(*******************************************************************************)
procedure TImgBtn.WMMouseEnter( var Msg: TWMMouse );
begin
if not FSupported then Exit;
FEntered := True;
if FDown then Picture := FPicDown else Picture := FPicUp;
if Assigned( FOnMouseEnter ) then FOnMouseEnter( Msg );
end;(*******************************************************************************)
procedure TImgBtn.WMMouseLeave( var Msg: TWMMouse );
begin
if not FSupported then Exit;
FEntered := False;
Picture := FPic;
if Assigned( FOnMouseLeave ) then FOnMouseLeave( Msg );
end;(*******************************************************************************)
procedure TImgBtn.WMLButtonDown(var Msg: TWMMouse);
begin
inherited;
if not FSupported then Exit;
FDown := True;
if FEntered then Picture := FPicDown;
if Assigned( FOnMouseDown ) then FOnMouseDown( Msg );
end;(*******************************************************************************)
procedure TImgBtn.WMLButtonUp(var Msg: TWMMouse);
begin
inherited;
if not FSupported then Exit;
FDown := False;
if FEntered then Picture := FPicUp;
if Assigned( FOnMouseUp ) then FOnMouseUp( Msg );
end;(*******************************************************************************)
procedure TImgBtn.SetPic( Value : TPicture );
begin
Picture := Value;
FPic.Assign( Value );
end;(*******************************************************************************)
procedure TImgBtn.SetPicDown( Value : TPicture );
begin
FPicDown.Assign( Value );
end;(*******************************************************************************)
procedure TImgBtn.SetPicUp( Value : TPicture );
begin
FPicUp.Assign( Value );
end;end.
如果支持全部版本,可以这样试一试:
菜单:-->Component-->Install Component-->选择第一行的"browse"-->选择"ImgBtn.pas"-->OK-->YES在关闭面板的时候选择"YES"保存编译.