TPen的7种Style和16种Mode
- //TPen 的主要属性有四: Color、Width、Style、Mode
- {Color: 颜色}
- {Width: 宽度; 默认是 1; 如果赋予 <= 0 的值, 会使用默认值}
- {Style: 样式; Delphi 定义了笔样式枚举 TPenStyle, 包含以下样式:}
- psSolid = 0; {实线}
- psDash = 1; {段线; 要求笔宽<=1}
- psDot = 2; {点线; 要求笔宽<=1}
- psDashDot = 3; {线、点; 要求笔宽<=1}
- psDashDotDot = 4; {线、点、点; 要求笔宽<=1}
- psClear = 5; {不可见}
- psInsideFrame = 6; {实线; 但笔宽是向里扩展}
- psUserStyle = 7; {自定义, Delphi.Net 支持}
- psAlternate = 8; {交替, Delphi.Net 支持}
- //下面的例子依次展示了各种样式:
- var
- i,x,y,n: Integer;
- begin
- x := 10;
- y := 15;
- n := ClientWidth - 2*x;
- Canvas.Pen.Color := clRed;
- for i := 0 to 8 do
- begin
- Canvas.Pen.Style := TPenStyle(i);
- Canvas.MoveTo(x, y);
- Canvas.LineTo(x + n, y);
- y := y + 15;
- end;
- end;
//效果图:

- {Mode: 画笔与背景的颜色混合模式; Delphi 定义了模式枚举 TPenMode, 包含以下模式:}
- pmBlack {总是黑色}
- pmWhite {总是白色}
- pmNop {画笔无效}
- pmNot {背景色取反}
- pmCopy {画笔设置的颜色}
- pmNotCopy {画笔颜色取反}
- pmMergePenNot {画笔颜色与背景颜色的反色的组合}
- pmMaskPenNot {画笔颜色与背景公共色的反色的组合}
- pmMergeNotPen {画笔颜色取反后与背景颜色的组合}
- pmMaskNotPen {画笔的反色与背景的公共色的组合}
- pmMerge {画笔颜色与背景颜色的组合}
- pmNotMerge {pmMerge 的反色}
- pmMask {画笔与背景公共颜色的组合}
- pmNotMask {pmMask 的反色}
- pmXor {画笔颜色与背景颜色的 Xor 组合}
- pmNotXor {pmXor 的反色}
- //颜色模式测试程序:
- var
- i,x,y,w,n: Integer;
- begin
- {先画竖的颜色背景}
- x := 0;
- y := 0;
- w := ClientWidth div 18;
- for i := 0 to 18 do
- begin
- Canvas.Brush.Color := PaletteIndex(i);
- Canvas.FillRect(Rect(x, y, x+w, ClientHeight));
- x := x + w;
- end;
- {再按不同模式依次画 16 条红色的横线}
- x := 0;
- y := 20;
- n := ClientWidth;
- Canvas.Pen.Width := 4;
- Canvas.Pen.Color := clRed;
- for i := 0 to 15 do
- begin
- Canvas.Pen.Mode := TPenMode(i);
- Canvas.MoveTo(x, y);
- Canvas.LineTo(x + n, y);
- y := y + 20;
- end;
- end;
//效果图:
:
TPen的7种Style和16种Mode的更多相关文章
- 16种基于 CSS3 & SVG 的创意的弹窗效果
在去年,我给大家分享了<基于 CSS3 的精美模态窗口效果>,而今天我要与大家分享一些新鲜的想法.风格和趋势变化,要求更加适合现代UI的不同的效果.这组新模态窗口效果包含了一些微妙的动画, ...
- 入口点函数的19种消息,AcRxArxApp只处理16种。
AcRx::AppMsgCode一共有19种消息. 但由IMPLEMENT_ARX_ENTRYPOINT宏实现的App类,只处理了16种消息. 缺: kSuspendMsg = 16, kIni ...
- Web桌面应用框架3:Web桌面应用开发的N种Style
研究Web桌面应用开发有一段时间了,总结了Web桌面应用开发的一些主流方式. 一.前端Style 这种方式的就是直接实现一个Web程序,再封装一个浏览器展示,相当粗暴和有效.著名的框架就是Electr ...
- STL——容器(Set & multiset)编译器提供的16种构造(挖个坑)
Set & multiset 在vs2019编译器中提供了16种构造方法 1.默认的无参构造 2.比较容器内容,key_comp()函数返回一个比较key的函数. 3.使用迭代器的区间拷贝,拷 ...
- 将一种cell当做几种cell使用
将一种cell当做几种cell使用 将一种cell当做几种cell用是有着一些意义的,比如,有时候,不同的cell之间差异很小,如果再派生一个cell出来,就会显得很麻烦,这时候,将这个cell当做几 ...
- 【页面传值6种方式】- 【JSP 页面传值方法总结:4种】 - 【跨页面传值的几种简单方式3种】
阅读目录 1. URL 链接后追加参数 2. Form 3. 设置 Cookie 4. 设置 Session JSP 页面间传递参数是项目中经常需要的,这应该算是 web 基本功吧. 试着将各种方式总 ...
- 20Mybatis_订单商品数据模型_一对一查询——resultType和resultMap两种方式以及两种方式的总结
上一篇文章分析了数据模型,这篇文章就给出一个需求,这个需求是一对一查询,并完成这个需求. ------------------------------------------------------- ...
- curl文件上传有两种方式,一种是post_fileds,一种是infile
curl文件上传有两种方式,一种是POSTFIELDS,一种是INFILE,POSTFIELDS传递@实际地址,INFILE传递文件流句柄! );curl_setopt($ch, CURLOPT_PO ...
- thinkphp 的两种建构模式 第一种一个单入口里面定义两个模块,前台和后台,函数控制模块必须function.php前台加载前台模块的汉书配置文件,后台加载后台模块的汉书配置文件,公共文件共用。第二种架构模式两个单入口文件,分别生成两个应用定义define。。。函数可以定义配置文件。。。。
thinkphp 的两种建构模式 第一种一个单入口里面定义两个模块,前台和后台,函数控制模块必须function.php前台加载前台模块的汉书配置文件,后台加载后台模块的汉书配置文件,公共文件共用. ...
随机推荐
- 复习:IPC机制
一.为什么需要IPC机制 当我们开启多个进程的时候,我们有时需要和各个进程进行交互.但是进程间的交互就不能够共享对象(就是进程A中创建了一个对象,进程B中的类或者方法不能够直接使用,需要用到IPC机制 ...
- MYSQL 为表指定文件位置 data directory
背景知识: 如果表不指定文件位置,它会保存到 data/database_name/table_file;其中data在你指定的安装目录下,为了提高IO我们尽可能的 用到多个硬盘的IO能力,这个就需要 ...
- placeholder在不同浏览器下的表现及兼容方法 placeholder兼容
1.什么是placeholder? placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或 ...
- 【python】中文的输出,打印,文件编码问题解决方法
直接在python中输入中文的字符串会报编译错误SyntaxError: Non-ASCII character,因为python文件默认编码方式是ASCII.如果想要打印中文字符,有两种方式: 1. ...
- SQL表名,应该用复数还是单数
用单数形式更佳,理由如下: 1.概念直观. 你有一个袋子,里面有好多个苹果,你会说这是个苹果袋.但无论里面有0,1,百万个苹果,它依然是个袋子.表也是如此,表明需要描述清楚,表里面包含的对象,而非有多 ...
- 充分利用CPU高速缓存,提高程序效率(原理篇)
提高程序效率应该充分利用CPU的高速缓存.要想编写出对CPU缓存友好的程序就得先明白CPU高速缓存的运行机制. i5-2400S: 1.有三级缓存分别为 32k(数据.指令缓存分开,分为32k),25 ...
- today reading notes
paminit manager from upstart to systemd/systemctl;Vivid Vervet + openStack kilo;为容器开发者(OpenStack工作环 ...
- iOS 键盘挡住UITextField
iOS经常使用的两个功能:点击屏幕和return隐藏虚拟键盘和解决虚拟键盘挡住UITextField的方法 iOS上面对键盘的处理非常不人性化,所以这些功能都须要自己来实现, 首先是点击return ...
- 查看oracle锁及解决办法
SQL> select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1, v$session t2 whe ...
- 【最大流】【HDU3338】【Kakuro Extension】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3338 题目大意:填数字,使白色区域的值得和等于有值得黑色区域的相对应的值,用网络流来做 题目思路:增加 ...