📄 buttonb.pas
字号:
unit ButtonB;
interface
uses
ButtonBase,
WinProcs, Classes, Graphics;
type
TButtonB = class(TButtonBase)
constructor Create(aOwner: TComponent); override;
private
FMask: TBitmap;
FIndex: integer;
procedure SetIndex(x: integer);
public
property Mask: TBitmap read FMask write FMask;
published
property Visible;
property ButtonIndex: integer read FIndex write SetIndex;
property OnClick;
protected
procedure Paint; override;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TButtonB]);
end;
constructor TButtonB.Create;
begin
inherited Create(aOwner);
ShowHint:=true;
SetBounds(0,0,25,25);
end;
procedure TButtonB.Paint;
begin
with Canvas do
if FGraphic<>nil then
begin
BitBlt(Canvas.Handle,0,0,25,25,FGraphic.Canvas.Handle,
203+26*Byte(FDown),137,SRCCOPY);
BitBlt(Canvas.Handle,0,0,25,25,FMask.Canvas.Handle,
1+FIndex mod 12 *26,337+FIndex div 12 *26,SRCAND);
BitBlt(Canvas.Handle,0,0,25,25,FGraphic.Canvas.Handle,
1+FIndex mod 12 *26,337+FIndex div 12 *26,SRCPAINT);
end
else begin Brush.Color:=$0000FF; FrameRect(Rect(0,0,25,25)) end
end;
procedure TButtonB.SetIndex(x: integer);
begin
FIndex:=x;
Invalidate
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -