为什么80%的码农都做不了架构师?>>>   

问题来源: http://www.cnblogs.com/del/archive/2009/03/12/1409708.html#1475240



本例效果图:



自定义的类(TMyButton):


unit Unit2;interfaceusesWindows, Messages, Classes, Graphics, StdCtrls;typeTMyButton = class(TButton)privateFBit1,FBit2: TBitmap;protectedprocedure WMPaint(var Message: TWMPaint); message WM_PAINT;publicconstructor Create(AOwner: TComponent); override;destructor Destroy; override;procedure Click; override;end;implementation{ TMyButton }procedure TMyButton.Click;
begininherited;MessageBox(0, 'MyButton', 'Hi', MB_OK);
end;constructor TMyButton.Create(AOwner: TComponent);
varwh: Integer;
begininherited;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;
beginFBit1.Free;FBit2.Free;inherited;
end;procedure TMyButton.WMPaint(var Message: TWMPaint);
varcvs: TCanvas;DC: HDC;
beginInherited;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;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;procedure Button1Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}uses Unit2;procedure TForm1.Button1Click(Sender: TObject);
beginwith TMyButton.Create(Self) do beginParent := Self;Left := Random(Self.ClientWidth - Width);Top := Random(Self.ClientHeight - Height);end;
end;end.

转载于:https://my.oschina.net/hermer/blog/319302

制作放两个小图片的按钮 - 回复 xhui 的问题相关推荐

  1. 计算机课玩的小游戏怎么找,能够回味电脑课的小游戏是什么 怎么制作这两个小游戏...

    能够回味电脑课的小游戏是什么,怎么制作这两个小游戏.在我的世界里回味已经是很多人的游玩乐趣之一了,因为这个游戏超高的自由度还有各种玩法可以让我们回味童年的种种. 这些小游戏乍一看都不怎么需要技巧 简单 ...

  2. 搞笑的短视频配音怎么制作?两个小方法来帮忙,好学又好做

    搞笑的短视频配音怎么制作?两个小方法来帮忙,好学又好做 闲来无事刷短视频的时候,我们经常可以刷到各种各样的搞笑短视频,它们给我们每一个人都带来了无尽的欢笑.尤其是搞笑配音短视频,只需要为短视频配上一段 ...

  3. 小程序 WXS响应事件(超出两屏显示返回顶部按钮)

    小程序 WXS响应事件(超出两屏显示返回顶部按钮) 两种解决办法: view页面形式实现: <wxs module="test" src="./test.wxs&q ...

  4. 用好这两个小工具,制作乐谱更高效!

    用好这两个小工具,制作乐谱更高效! 关键词:吉他谱 我们是否喜爱在夜深人静倍感烦闷的时候,拿起吉他弹上一首民谣,缓解心中烦闷.吉他作为一种大众乐器,发展至今已有许久历史,深受男女老少喜爱,而Guita ...

  5. 菜鸟怎样把U盘制作成系统启动盘,并且可以放两个系统,一个win7,另一个xp系统。

    准备阶段:足够大的U盘,网上下载好的win7和xp镜像文件(iso)文件,第三下载WinPEU软件(该软件是类似于WinPE来实现启动引导系统进入PE,类似软件如老毛桃WinPE) 1 第一步:首先 ...

  6. java与python两个小人动图_CSS Sprite小图片自动合并工具(NodeJS,Python,Java,Ruby)

    注* 基于Node.JS的图片合并工具还有一些,但大多依赖第三方图像处理库,此处略. /*配置输出的大图片地址.排列方向,间隔等*/ /** sprite: mysprite; sprite-imag ...

  7. 自定义Android带图片的按钮

    自定义Android带图片的按钮 前言 现在移动设备的按钮设计讲究大图标小文字,希望用户只要一看到图标便能知道这个按钮是干嘛的,但又要有必要的文字提示,最常见的就数搜索按钮了,上面一个大大的放大镜图标 ...

  8. CSS3_03_图片_按钮_分页

    CSS3 多列 分列 CSS3 多列 通过 CSS3,您能够创建多个列来对文本进行布局 - 就像报纸那样,您可以收藏文章,需要用到的时候看一看. 在本章中,您将学习如下多列属性: column-cou ...

  9. ubuntu自定义安装里怎么选_超市里的五香粉怎么选?看懂配料表,两个小技巧,不怕选不好。...

    点击右上角[关注],可获得本头条号推荐的更多美食干货 五香粉是家庭常用的一种调味料,焖.炖.烧.煮.卤都常备使用,如今市场上的五香粉品牌也是相当繁多,质量也是参差不齐,有时买到的五香粉烧制的菜肴根本就 ...

最新文章

  1. python在线翻译代码_Python 20行简单实现有道在线翻译的详解
  2. PgSQL · 案例分享 · PostgreSQL+HybridDB解决企业TP+AP混合需求
  3. 一文看懂WebTransport
  4. .classpath文件有什么用_干货分享:Windows目录结构剖析,C盘目录常见文件夹都有什么用?...
  5. ios端input 光标问题
  6. authorization 传 就跨域_跨域访问接口上传图片出现options请求问题解决方法
  7. Android Studio 插件——《阿里巴巴 Java 开发规约》的扫描插件
  8. 2020-2-6 蓝桥杯阶段模拟总结
  9. 数字图像处理(极简) 第一章 概述(docx)
  10. Hadoop技术原理与应用
  11. msxml4.0 sp4_MSXML4和80072efd中的安全性
  12. ECTouch多语言插件,ECSHOP手机版多语言翻译,ecshop手机端多国语言翻译切换,ECSHOP网站多语言切换
  13. 3.19 使用钢笔工具绘制一枚诱人的梨子 [Illustrator CC教程]
  14. 油猴安装、编写及添加脚本 笔记
  15. C语言编程联练习 烤烧饼
  16. 李航统计学习感知机算法实现
  17. SpringBoot开发之JavaWeb回顾
  18. 你的电脑未正确启动,自动修复死循环
  19. python 发送get 请求
  20. 软件工程----第一遍机房文档之串思路

热门文章

  1. 看了数百个PPT封面,我只想告诉你这两个套路!
  2. python 运行当前目录下的所有文件
  3. [JZOJ5866]【NOIP2018模拟9.13】指引
  4. ssl 的jks 生成工具
  5. __METHOD__
  6. redis服务器学习一
  7. Kubernetes容器上下文环境
  8. POJ2402 Palindrome Numbers 回文数
  9. SQL Server 数据库维护脚本合集[005]-删除数据库所有用户表
  10. 无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。...