Delphi 给 TComboBox 添加图标


本文整理自网络,侵删。

 本例效果图:

 

代码文件:

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ImgList, ComCtrls;

 

type

  TForm1 = class(TForm)

    ComboBox1: TComboBox;

    ImageList1: TImageList;

    procedure FormCreate(Sender: TObject);

    procedure ComboBox1DrawItem(Control: TWinControl; Index: Integer;

      Rect: TRect; State: TOwnerDrawState);

    procedure FormDestroy(Sender: TObject);

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

var

  Bits: array[0..3] of TBitmap;

 

procedure TForm1.FormCreate(Sender: TObject);

var

  i: Integer;

begin

  for i := 0 to Length(Bits)-1 do

  begin

    Bits[i] := TBitmap.Create;

    ImageList1.GetBitmap(i, Bits[i]);

    ComboBox1.Items.Add(Format('Item %d', [i]));

  end;

 

  ComboBox1.Style := csOwnerDrawVariable;

  ComboBox1.ItemHeight := Bits[0].Height + 4;

  ComboBox1.ItemIndex := 0;

end;

 

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;

  Rect: TRect; State: TOwnerDrawState);

begin

  ComboBox1.Canvas.FillRect(Rect);

 

  ComboBox1.Canvas.BrushCopy(Bounds(Rect.Left+2, Rect.Top+2, Bits[Index].Width, Bits[Index].Height), 

                             Bits[Index],

                             Bounds(0, 0, Bits[Index].Width, Bits[Index].Height),

                             clBlack);

  ComboBox1.Canvas.TextOut(Rect.Left + 24, Rect.Top + 3, ComboBox1.Items[Index]);

end;

 

procedure TForm1.FormDestroy(Sender: TObject);

var

  i: Integer;

begin

  for i := 0 to Length(Bits)-1 do

    Bits[i].Free;

end;

 

end.

相关阅读 >>

Delphi md5加密字符串

Delphi 在richedit中插入gif图片的方法

Delphi 中使长循环有响应

Delphi把流中的字符串转换为utf格式

Delphi 快捷键

Delphi 计算程序运行时间

Delphi listview 与数据库连接

Delphi中关闭“返回值…可能未定义”的警告

Delphi中combobox.items.indexof用法

Delphi tadocommand 中文使用说明

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...