知识大全 Delphi字符串列表及应用(四)
Posted 项目
篇首语:喜欢读书,就等于把生活中寂寞的辰光换成巨大享受的时刻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi字符串列表及应用(四)相关的知识,希望对你有一定的参考价值。
Delphi字符串列表及应用(四) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
把图像加入字符串列表
上节已介绍如何把对象加入字符串列表 例程把位图对象加入Tabset 的Tabs中
procedure TForm FormCreate(Sender: TObject); var Bitmap: TBitMap; begin Listbox Items := Screen Fonts; Bitmap := TBitmap Create; Bitmap LoadFromFile( PHONE BMP ); Tabset Tabs AddObject( phone Bitmap); Bitmap := TBitmap Create; Bitmap LoadFromFile( PRINTER BMP ); Tabset Tabs AddObject( printer Bitmap); end; 绘制自画项目
当部件的Style属性是自画式时 Windows不再绘制部件 相反Windows为每个可视项目产生事件 而应用程序必须在事件中绘制项目
在应用程序绘制自画控制之前 Windows产生测量项目事件 这个事件告诉程序项目显示的位置
通常由Windows决定项目显示的大小 但应用程序可以处理这个事件并自己选择显示区域 例如 程序要用位图代替文本显示 则需要把区域设置成位图的大小 测量项目事件的名称随部件的名称不同而不同 对于列表框和组合框 该事件叫OnMeasureItem 对于Tabset 该事件叫OnMeasureTab
测量项目事件有两个重要参数: 项目索引号与项目的大小 这个大小是变化的 后继项目的输出位置由前面项目的大小决定 例如 在自画式列表框中 如果应用程序把第一个项目的高度设置成 个象素点 则第二个项目在第六个象素点开始输出 列表框和组合框中 应用程序只能设置成项目的高度 而项目的宽度就是部件的高度 在Tabset中 tabs的宽度是可变的 而高度则是固定的 自画式网格允许应用程序改变网格单元的高度和宽度
OnMeasureItem的声明如下
ListBox MeasureItem(Control: TwinControl;Index: Integer; var Height: Integer);
例程中响应OnMeasureItem事件的代码如下:
procedure TForm ListBox MeasureItem(Control: inControl; Index: Integer; var Height: Integer); begin with ListBox Canvas do begin Font Name := ListBox Items[Index]; Height := TextHeight( A ); end; end; procedure TForm TabSetMeasureTab(Sender: TObject; Index: Integer; var TabWidth: Integer); var BitmapWidth: Integer; begin BitmapWidth := TBitmap( TabSet Tabs Objects[Index]) Width; Inc(TabWidth + BitmapWidth); end;
在OnMeasureItem事件发生后 Windows激发一个叫OnDrawItem的事件 这个事件也随部件名称不同而不同 常见的有OnDrawItem OnDrawTab OnDrawCell
OnMeasureItem的声明如下
DrawItem( Control: inControl; Index: integer; Rect: TRect; State: TOwnerDraw);
其中Control是包含项目的部件引用
Index 是项目的索引号
Rect 是绘制的矩形
State 是项目的状态 如选中 得到焦点等
在例程的列表框中 所列项目是屏幕支持的各种字体名称 当列表框发生OnDrawItem事件时 程序把输出字体设置成该项目所代表的字体 因而 列表框的项目呈现出不同的字体 其代码如下
cha138/Article/program/Delphi/201311/24764相关参考
Delphi字符串列表及应用(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 重复操作列表中
Delphi字符串列表及应用(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Delphi应
DELPHI基础教程:Delphi客户服务器应用开发(四)[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
DELPHI基础教程:Delphi客户服务器应用开发(四)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
DELPHI基础教程:Delphi客户服务器应用开发(四)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
DELPHI基础教程:Delphi客户服务器应用开发(四)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
Delphi中保存图像列表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近在做项目时遇到将图
好用的Delphi字符串 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一各种字符串
unitUnit; interface uses WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms 
Delphi把流中的字符串转换为UTF格式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本例效