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 创建win桌面快捷方式,实现360桌面图标数字提示 或 类似安卓的右上角的数字提示

Delphi 控制鼠标按坐标点击

Delphi 官方提供的六十多个firedac例子

Delphi 2010 unicode

Delphi源码简单的实现粘贴复制代码

Delphi 多关键词批量替换

Delphi中tapplicationevents控件的用途与使用方法

Delphi中formatdatetime的用法

Delphi 网址链接提取域名

Delphi取得文件图标并在tlistview中显示

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



打赏

取消

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

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

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

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

评论

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