- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用Delphi 实现自定义颜色对话框及其构件
在开发证券分析软件中,经常要绘制各种股票的分析曲线。为了使得软件的 功能更加方便.灵活,用户希望能够按照自己的喜好自定义各种曲线的颜色。在WORD97的[格式]菜单下的字体对话框中有类似的功能。当用户单击字体对话框中的颜色下拉框时,各种颜色的简单图案和字体的颜色名称一起显示出来,这样处理的结果显然比只提供一个装有颜色名称的下拉框效果要好的多。 一、自定义颜色对话框的实现 在Delphi中,我们可以使用TComboBox 实现类似的功能。在TcomboBox构 件中有一个Style属性, 决定TcomboBox的显示属性。 通常可选取csDropDown,csSimple,csDropDownList, csOwnerDrawFixed,csOwnerDrawVariable等。其中当选取csOwnerDrawFixed时表示创建一个自画下拉框,下拉框 的每一项的高度由ItemHeight属性 决定。并且必须在TcomboBox的OnDrawItem事件中响应自画过程。OnDrawItem的定义为:propertyOnDrawItem:TDrawItemEvent;TDrawItemEvent =procedure(Control:TWinControl;Index:IntegerRect:TRect; State:TOwnerDrawState)ofobject;其中的三个参数的含义为:Control: 包含下拉框的TComboBoxIndex:自画的下拉框在TComboBox 的Items属性中的索引号Rect:自画的位置 因此,知道了需要自画的矩形的位置(Rect参 数)和在TComboBox中的索引号(Index参数),我们可以使用TcomboBox的Canvas属性在其画布上自画。具体的实现过程如下:1.新建一个工程文件,设置其默认窗体的有关属性为:Caption 自定义下拉框Name Form1PositionpoScreenCenter2 .在窗体中放置两个TcomboBox构 件,设置其属性如下:NameStyleItemHeightOnDrawItemColorCombo1csOwnerDrawFixed 20ColorComboDrawItemColorCombo2csOwnerDrawFixed 30ColorComboDrawItem3 .双击ColorCombo1和ColorCombo2 的Items属性旁的圆点按纽,在StringListEditor对话框中输入黑色蓝色蓝绿鲜绿红色黄色等各种颜色的名称4 .在ColorCombo1的OnDrawItem 事件中 肴缦麓?procedureTForm1.ColorComboDrawItem(Control: TWinControl;Index:Integer;Rect:TRect;State:OwnerDrawState);varTempColor:TColor; //自画颜色TempBrushColor:TColor; //临时颜色beginwith(ControlasTComboBox)do//在Combo的Canvas 上自画beginTempBrushColor:=Canvas.Brush.Color;//保存原来的的颜色Canvas.FillRect(Rect);caseIndexof//根据Index 的不同,定义不同自画的颜色0://黑色TempColor:=clBlack;1://蓝色TempColor:=clBlue;2://蓝绿TempColor:=clAqua;3://鲜绿TempColor:=clLime;4://红色TempColor:=clRed;5://黄色TempColor:=clyellow;//可以在此加入对其它颜色的响应end;Canvas.Brush.Color:=TempColor;//自画颜色矩形Canvas.Rectangle(Rect.Left+4,Rect.Top+1,(Rect.Right+Rect.Left)div3,Rect.Bottom 1);Canvas.Brush.Color:=TempBrushColor;//显示与颜色对应的字符串Canvas.TextOut((Rect.Left+Rect.Right)div2,Rect.Top+1,Items[Index]);end;end;5 .保存,运行文件,我们可以看到和WORD中颜色下拉框相同的 效果有兴趣的读者,可以在文中所示的位置加入对其它颜色处理。以上程序在Delphi3.0,4.0 上通过。二、 自定义颜色对话框构件的编写 对许多Delphi程序员来说,如何编写自己的Delphi构件还是比较陌生的,Delphi构件实际上是从Tcomp
您可能关注的文档
最近下载
- 北京-EU5-产品使用说明书-EU5-BJ7000C5D3-BEV-北汽新能源EU5车型用户手册V3.pdf
- 特定场景自动驾驶,快速上行赛道值得关注_2022-05-自动驾驶.pdf
- 液氯(氯气)和氯乙烯生产企业以及过氧化企业安全风险隐患排查指南.docx VIP
- 《城市规划设计计费指导意见》2017修订版.docx
- 液氯(氯气)生产企业重点检查项安全风险隐患排查表.docx VIP
- 《作文》专题系列课件126《作文分论之_诗歌类材料作文》.ppt
- 2023年度公务员考试(公考)行政职业能力测验(行测)测试卷(附答案和解析).pdf VIP
- LittleSwan小天鹅TB36V81H 波轮全自动洗衣机 巴赫银 门盖巴赫银 波轮式 220V,1Ph 50Hz.pdf
- 广东梅州抽水蓄能电站二期环境影响报告书(送审稿).doc
- 第一讲:形势与政策课件.ppt VIP
文档评论(0)