知识大全 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字符串列表及应用(二)

Delphi字符串列表及应用(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  重复操作列表中

知识大全 Delphi字符串列表及应用(一)

Delphi字符串列表及应用(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Delphi应

知识大全 Delphi客户服务器应用开发(四)[4]

DELPHI基础教程:Delphi客户服务器应用开发(四)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Delphi客户服务器应用开发(四)[3]

DELPHI基础教程:Delphi客户服务器应用开发(四)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Delphi客户服务器应用开发(四)[2]

DELPHI基础教程:Delphi客户服务器应用开发(四)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Delphi客户服务器应用开发(四)[1]

DELPHI基础教程:Delphi客户服务器应用开发(四)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Delphi中保存图像列表

Delphi中保存图像列表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近在做项目时遇到将图

知识大全 好用的Delphi字符串

好用的Delphi字符串  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   一各种字符串

知识大全 delphi 的分离字符串函数 split

  unitUnit;  interface  uses   WindowsMessagesSysUtilsVariantsClassesGraphicsControlsForms 

知识大全 Delphi把流中的字符串转换为UTF格式

Delphi把流中的字符串转换为UTF格式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本例效