delphi 制作放两个小图片的按钮


本文整理自网络,侵删。

 本例效果图:


自定义的类(TMyButton):
--------------------------------------------------------------------------------

unit Unit2;

interface

uses
Windows, Messages, Classes, Graphics, StdCtrls;

type
TMyButton = class(TButton)
private
FBit1,FBit2: TBitmap;
protected
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Click; override;
end;

implementation

{ TMyButton }

procedure TMyButton.Click;
begin
inherited;
MessageBox(0, 'MyButton', 'Hi', MB_OK);
end;

constructor TMyButton.Create(AOwner: TComponent);
var
wh: Integer;
begin
inherited;
FBit1 := TBitmap.Create;
FBit2 := TBitmap.Create;
//在此可以载入图片, 为了测试方便, 我随便画两个矩形吧
wh := Height - 8;
FBit1.SetSize(wh, wh);
FBit2.SetSize(wh, wh);
FBit1.Canvas.Brush.Color := clRed;
FBit1.Canvas.Rectangle(0, 0, wh, wh);
FBit2.Canvas.Brush.Color := clLime;
FBit2.Canvas.Rectangle(0, 0, wh, wh);
end;

destructor TMyButton.Destroy;
begin
FBit1.Free;
FBit2.Free;
inherited;
end;

procedure TMyButton.WMPaint(var Message: TWMPaint);
var
cvs: TCanvas;
DC: HDC;
begin
Inherited;
DC := GetDC(Handle);
cvs := TCanvas.Create;
cvs.Handle := DC;
cvs.Draw(4, (Height - FBit2.Height) div 2, FBit1);
cvs.Draw(Width - FBit2.Width - 4, (Height - FBit2.Height) div 2, FBit2);
cvs.Free;
ReleaseDC(Handle, DC);
end;

end.
--------------------------------------------------------------------------------


测试代码:
--------------------------------------------------------------------------------

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
with TMyButton.Create(Self) do begin
Parent := Self;
Left := Random(Self.ClientWidth - Width);
Top := Random(Self.ClientHeight - Height);
end;
end;

end.

相关阅读 >>

Delphi 选择一张照片,让照片缩略图显示在图片控件中间

Delphi利用scrollbox实现图像漫游

Delphi richedit1 设置字体

Delphi取cpu利用率

Delphi 让scrollbox响应鼠标滚轮事件

Delphi获取dos命令行输出函数 运行cmd命令并获取结果【方法2】

Delphi开发获取文件md5值

Delphi 实现简易语音发音(基于tts方式)

Delphi 下载并运行的代码

Delphi报警声音 beep、messagebeep 和 windows.beep

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...