zoukankan      html  css  js  c++  java
  • 给 TComboBox 添加图标

    本例效果图:
     
    给 TComboBox 添加图标 - bbdu - dev_bbdu
     
     
     
    代码文件:
     
    unit Unit1;
     
     
     
    i
    interface
     
     
     
    u
    uses
     
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     
      Dialogs, StdCtrls, ImgList, ComCtrls;
     
     
     
    t
    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;
     
     
     
    v
    var
     
      Form1: TForm1;
     
     
     
    implementation
     
    {
    {$R *.dfm}
     
     
     
    v
    var
     
      Bits: array[0..3] of TBitmap;
     
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    v
    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;
    e
    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]);
    e
    end;
     
     
     
    procedure TForm1.FormDestroy(Sender: TObject);
    v
    var
     
      i: Integer;
     
    begin
      for i := 0 to Length(Bits)-1 do
     
        Bits[i].Free;
    e
    end;
     
     
     
    e
    end.
  • 相关阅读:
    小程序(1)
    手机端放在线条中间的标题
    不定长度导航的两端对齐
    扇形导航菜单
    个性搜索框
    javascript数组原型方法
    jquery插件开发的demo
    监听表单中的内容变化
    mui中的关闭页面的几种方法
    css之伪类选择器:before :after(::before ::after)
  • 原文地址:https://www.cnblogs.com/huapox/p/3299840.html
Copyright © 2011-2022 走看看