知识大全 Delphi图形图像编程(一)[2]
Posted 知
篇首语:案头见蠹鱼,犹胜凡俦侣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi图形图像编程(一)[2]相关的知识,希望对你有一定的参考价值。
DELPHI基础教程:Delphi图形图像编程(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Tpen Object(画笔对象)
应用程序常用TPen对象在画布上绘制各种线段 笔的颜色在Color属性中定义 线段宽度在Width属性中定义
Style属性定义了线段的各种类型 如表 :
表 Styled的取值及含义
━━━━━━━━━━━━━━━━━━━━━━
Style 含义
──────────────────────
PSolod 画固定线段
PSDash 画由下划线组成的线段
PSDot 画由点组成的线段
PsDashDot 画点划线
PsClear 画双点划线
PsClear 画看不见的线段
PsInsideFrame 画边界的矩形线框
━━━━━━━━━━━━━━━━━━━━━━━
Mode属性定义线段的颜色 可结合当前的颜色 屏幕颜色或它们反转值 对线段的颜色重新定义 但不改变Color属性 详见表
表 Mode的取值及含义
━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mode 象素颜色
──────────────────────────
PmBlack 黑色
PmWhite 白色
PmNop 不变
PmCopy 使用Color属性中的颜色
PmNotCopy 笔颜色的反转值
PmMergePenNot 笔的颜色与屏幕颜色反转值的结合
PmNaskNotPen 屏幕颜色与笔颜色
PmMergeNotPen 屏幕颜色与笔颜色反转值的结合
━━━━━━━━━━━━━━━━━━━━━━━━━━━
TBrush OBject(画刷对象)
画刷对象用以填充图形 如用画刷颜色或图案对矩形或椭圆进行填充 TBrush拥有一个画刷句柄(HBrush)
画刷的颜色定义在Color属性中 画刷还有一个Bitmap属性 该属性只能在运行时得到 画刷可使用位图填充图形以产生特殊效果 位图大小为 个象素点 高 个象素点宽
Style属性定义了画刷填充图形的风格
TColor类型
TColor类型用于定义一个对象的颜色 很多部件的颜色属性就是TColor 类型 在Graphics单元中TColor定义如下
TColor = (COLOR_ENDCOLORS + )$ FFFFF;
这是一个 位二进制数据 Graphic单元中还定义了一些常用的颜色常量 这些常量或直接映射成系统调色板中最相近的颜色 或映射成Wondows 控制面板中颜色部分的系统视频颜色
直接映射成系统调色板中的颜色有
ClAqua CLBlack ClBlue ClbkGrray ClFuchsoa……ClYellow
映射程序用 字节的二进制码来定义颜色 低 位字节代表RGB 相应的颜色 如$ FF 表示纯蓝 $ FF 表示纯绿 $ FF表示纯红 $ 表示黑色 $ FFFFFF表示白色 如果最高位字节是$ 则表示用系统调色板中最相近的颜色 最高位字节是$ 则表示用当前调色板中最相近的颜色匹配 最高位字节是$ 则用当前设备描述表中逻辑调色板的次相近颜色匹配
用Windows API的SelectPalette函数可创建逻辑调色板 要实现逻辑调色板到硬件调色板的映射 需用函数RealizePalett
图形程序的开发
Graphex dpr是一个简单的图形图像应用程序 运行状态如图 该程序可用鼠标绘制多种图形 可设置画笔颜色 画刷填充方式 另外还可以浏览位图 元文件 图标 改变它们的大小 并打印 本节结合例程讲述以下问题
● 在工具条中添加加速按钮
● 响应鼠标事件
● 设置画笔和画刷
● 实现绘图的 橡皮擦 功能
● 加入状态条
在工具条中添加加速按钮
加速按钮是应用程序常用的部件 它是替代菜单的快捷形式 通常把多个加速按钮集中在一个工具条中以方便使用 Graphex中有三个工具条 它们是TPancel部件 面板上有几组加速按钮 用以设置绘图方式 画笔 画刷
每个加速按钮的glyph属性是图像对象 位图对象用来指示该按钮是否被使用 glyph 通常需要四幅图像 分别表示按下 不按 选择 失效四种状态 程序员可根据个人喜好来选择图像
加速按钮使用图像来告诉用户其状态和目的 因为按钮上无标题 因此应给用户正确的提示
● 把Down属性设置成真值使加速按钮呈按下状态
● 把Enable属性设置成假值使加速按钮呈失效状态
例程中缺省的绘图工具是画线 因此应用程序开始时画线按钮呈按下状态
在应用程序中 常把一些功能相似的按钮放在一起 用户在同一时刻只能选择其中的一个按钮 当其它按钮按下时 原来被按下的按钮自动弹起 这些选择排它的按钮称为一组加速按钮
要使多个加速按钮成为一组 将这些按钮的GraphIndex属性设成相同的值 最简单的办法是在设计状态时 用鼠标选中各个加速按钮 然后设置GraphIndex值
有时用户按一个已经按下的按钮 希望该按钮能够弹起 这样没有任何按钮被按下 使用AllowAllup 属性可实现上述功能 对于一组加速按钮来讲 设置该组中任一按钮的AllowAllup可使这组的每一个按钮具有这种功能
Graphex程序中设计了三组加速按钮和两个单独的加速按钮 第一组加速按钮用来选择绘图工具 它与两个单独的按钮处在同一面板中 这个面板是缺省可见的 另外两个按钮分别代表画笔 画刷 第二组与第三组加速按钮处在两个缺省不可见的面板中 它们分别代表不同风格的画笔和画刷 只有按下第一个面板中的画笔(或画刷)按钮 第二(或第三) 个面板才会显示 这样用户就可以选择画笔 画刷了
cha138/Article/program/Delphi/201311/25248相关参考
DELPHI基础教程:Delphi图形图像编程(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(一)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(二)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
Delphi中的图形显示技巧[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 垂直交错效果
DELPHI基础教程:Delphi拖放编程[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Delphi面向对象的编程方法(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Delphi
知识大全 用C#对Illustrator矢量图形软件进行编程[2]
用C#对Illustrator矢量图形软件进行编程[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
Delphi编程访问注册表(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 注册表是wind
利用Delphi编程控制摄像头(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n