unit Unit1;interfaceuses 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.
聯(lián)系客服