Delphi实现Listbox中的item根据内容显示不同颜色的方法

本文简述了Delphi实现Listbox中的item根据内容显示不同颜色的方法,实现步骤如下:

ListBox1 的 Style 属性改为 lbOwnerDrawVariable

在ListBox的OnDrawItem事件裡,根据item的值,改变Canvas属性

示例代码如下:

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin    //字体用原来默认的颜色
 if Odd(index) then   //当items的index为奇数时的颜色
 begin
  listbox1.Canvas.Brush.Color:=clwindow;
  ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]);
 end
 else     //当items的index为偶数时的颜色
 begin
  listbox1.Canvas.Brush.Color:=clinactivecaptiontext;
  ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]);
 end;
 if  odSelected  in  state  then    //当选定时的颜色
 begin
  listbox1.Canvas.Brush.Color:=clhighlight;
  ListBox1.Canvas.TextRect(Rect,rect.Left,Rect.Top,ListBox1.Items[index]);
 end;
end;
(0)

相关推荐

  • Delphi控件ListView的属性及使用方法详解

    Delphi的ListView组件位于组件板的Win32页,可使用4种图形方式(大图标.小图标.列表.详细列表)来描述选项内容,类似于Windows操作系统中的"我的电脑",数据项图形保存在ImageList组件中. 1.ListView主要属性 (1)ViewStyle属性 ViewStyle属性用于选择数据项的4种显示方式,因此该属性有4个选项值:vsIcon大图标.vsSmallIcon小图标.vsList列表.vsReport详细列表. (2)Items属性 Items属性用于

  • Delphi实现窗口文字淡入淡出渐变效果的方法

    本文所述实例为Dlephi实现的窗口渐变文字效果,文字可以不停的变化,颜色由浅入深,由清淅变模糊,文字渐变的时间可在代码中自己调整.主要实现代码如下: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer;

  • Delphi创建开机启动项的方法示例

    Delphi可以通过创建开机启动项键值的方法,将程序添加到开机启动项中.通过本实例代码就可以为您的程序添加到快速启动中,随着Windows一起启动,开机即运行的程序.该实例代码简单,主要是通过添加注册表键值来实现. 具体的功能代码如下所示: unit dy97; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,registry, StdCtrls,

  • Delphi实现木马自我拷贝方法

    木马实现自我拷贝的原理是程序运行时先查看自己是不是在特定目录下,如果是就继续运行,如果不是就把自己拷贝到特定目录下,然后运行新程序,继而退出旧程序. 本例即以Delphi实现木马的自我拷贝. 首先打开Delphi,新建一个工程,在窗口的Create事件中写入如下代码: procedure TForm1.FormCreate(Sender: TObject); var myname: string; begin myname := ExtractFilename(Application.Exena

  • delphi实现保存和读取图片的方法

    本文实例讲述了delphi实现保存和读取图片的方法,是非常实用的技巧.分享给大家供大家参考.具体实现方法如下: 首先引用jpeg 1.显示图片: if OpenPictureDialog.Execute then begin img1.Picture.LoadFromFile(OpenPictureDialog.FileName); btnPicture.Text:=OpenPictureDialog.FileName; end; 2.保存图片: var Stream:TMemoryStream

  • Delphi远程连接Mysql的实现方法

    本文实例讲述了Delphi远程连接Mysql的实现方法,是Delphi数据库程序设计中非常重要的技巧.分享给大家供大家参考之用.具体方法如下: Delphi 通过ADOConnection链接远程Mysql数据库,要在安装软件的电脑上安装Mysql 驱动,没有的在百度下载,搜索mysql ODBC驱动就出来了 主要的链接代码如下: var srstring:string; srstring:='DRIVER={MySQL ODBC 3.51 Driver};SERVER='+Trim(SERVE

  • Delphi7中群发Email邮件的方法

    本文实例讲述了Delphi7中群发Email邮件的方法.分享给大家供大家参考.具体分析如下: 这段时间需要对所有参加考试的考生将考生信息及考试信息通过电子邮件群发,经过多次调试,算是成功了,发来给大家参考一下: 总的思路是: 1.安装局域网版的邮件服务器,并通过设置DNS使得给服务器能给网外用户发送电邮,这方面的软件比较多,例如WinWebMail就不错,可以从官网下载:   2.需要使用到的控件:Indy10.0.15,可以通过百度搜索下载:   3.设置需要发送的电子邮箱服务器及账号信息 复

  • Delphi实现获取磁盘空间大小的方法

    本文所述Delphi实例用以获取指定的磁盘空间容量大小,检测磁盘大小,从combox中选择磁盘代号等功能.点击"检测驱动器"容量信息的按钮,就可以在下边显示出该磁盘的总空间大小以及要用容量的大小.读者可根据需求添加对应的Button与label控件. 主要程序代码如下所示: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtr

  • Delphi中对时间操作方法汇总

    一般来说在delphi中用于描述时间的有几种数据结构,而对时间的操作,实质上就是对这些结构的操作. TDateTime类型: Delphi中最常用的表示日期时间的数据类型TDateTime类型,和普通的整形数一样,你可以给日期定义一个日期型变量以便在程序中进行操作.TdateTime类型实质上是一个Double型的数,在Delphi中是这样定义TdateTime类型: type TDateTime = type Double ,具体的算法是用Double数的整数部分表示日期,以1989年12月3

  • delphi7连接mysql5的实现方法

    本文简单介绍了Delphi7连接MySQL数据库的实现方法,具体步骤如下: 首先先去下载:http://www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html 然后将下载到的dbxopenmysql5_dll.zip解压出来,再把dbxopenmysql50.dll和libmysql.dll都放到工程文件夹下. 在Form上放上TSQLConnection.TSQLQuery.TStringGrid.3个TButton.

随机推荐