首先: 这有现成的控件: TComboBoxEx, 没必要使用 TComboBox; 非要在 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.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 149 ClientWidth = 222 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate OnDestroy = FormDestroy PixelsPerInch = 96 TextHeight = 13 object ComboBox1: TComboBox Left = 24 Top = 8 Width = 145 Height = 21 ItemHeight = 13 TabOrder = 0 OnDrawItem = ComboBox1DrawItem end object ImageList1: TImageList Left = 48 Top = 48 Bitmap = { 494C010104000A00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000002000000001002000000000000020 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000AD9E9400AD9E9400AD9E 9400AD9E9400AD9E9400AD9E9400AD9E9400AD9E9400AD9E9400AD9E9400AD9E 9400AD9E9400AD9E9400AD9E9400000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000A5968400E7DFD600E7D7 D600DED7CE00DECFC600D6CFBD00D6C7BD00E7D7D6007B5131008C4918008C49 1800C6BEB500CEBEAD00A5968400000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000EFF3 F70094BE9C00297D31000069080000650800005D0000186121006B8E6B00D6DF D60000000000000000000000000000000000000000000000000000000000EFF3 F70094BE9C00297D31000069080000650800005D0000186121006B8E6B00D6DF D6000000000000000000000000000000000000000000A5968400E7E7DE00E7D7 D600DED7CE00DED7CE00D6CFC600D6CFBD00E7D7D6007B3818008C3800008C38 0000C6BEB500CEBEAD00A5968400000000003130DE003130DE00A5A6FF00A5A6 FF00A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6 FF00A5A6FF00A5A6FF003130DE003130DE000000000000000000C6DBC600318A 3100089A210010B6310008B6210008B2180000B2100000AE0800009208001065 100094AE9C000000000000000000000000000000000000000000C6DBC600318A 3100089A210010B6310008B6210008B2180000B2100000AE0800009208001065 100094AE9C0000000000000000000000000000000000A5968400EFE7DE00E7E7 DE00E7D7D600DED7CE00DED7CE00D6CFC600E7D7D60073412900943800008C38 0000C6BEB500CEBEAD00A5968400000000003130DE003130DE00E7E7FF000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000E7E7FF003130DE003130DE0000000000D6E3D600108A210018B6 420018BA420018BA390010B6310039C3520018B6290008B2180000AE100000AE 08000069000094AE9C00000000000000000000000000D6E3D600108A210018B6 420018BA420018BA390010B6310039C3520018B6290008B2180000AE100000AE 08000069000094AE9C00000000000000000000000000A5968400EFE7E700F7EF EF00F7EFEF00EFEFEF00EFEFEF00DECFCE00E7D7D60084A6A500944110009441 0800C6BEB500CEBEAD00A5968400000000003130DE003130DE00A5A6FF00E7E7 FF00000000000000000000000000000000000000000000000000000000000000 0000E7E7FF00A5A6FF003130DE003130DE00EFF3F70042A2420021B6520021BE 5A0021CB4A0018CF4A0073E39400E7FBE7006BE38C0021D3420018C7290008B2 180000AE080010691000D6DFD60000000000EFF3F70042A2420021B6520021BE 5A0021BE520018BA420073D38C0000000000B5EBBD0008B6210008B2180008B2 180000AE080010691000D6DFD6000000000000000000A5968400EFEFE7000000 00008C8684006359520052413900DED7D600E7DFD6009C968C00944918009449 1800CEBEB500CEBEAD00A5968400000000003130DE003130DE00E7E7FF00A5A6 FF00E7E7FF0000000000000000008486F7008486F7000000000000000000E7E7 FF00A5A6FF00E7E7FF003130DE003130DE00B5DBB50018A6390029C36B0021CB 520021D3520029CB6300A5E7BD00000000000000000073DF940021D34A0010C7 290008B21800009610005A8A5A0000000000B5DBB50018A6390029C36B0029C3 630021BE5A0073D7940000000000000000009CE3AD0010B6310010B6290008B2 210008B21800009610005A8A5A000000000000000000A5968400EFEFE7000000 00008C867B00A5968C0052414200E7D7D600E7DFD6007B5942008C5939009C49 2100C6C7C600CEBEB500A5968400000000003130DE003130DE0000000000E7E7 FF00A5A6FF00B5B6FF008486F7005A59EF005A59EF008486F700B5B6FF00A5A6 FF00E7E7FF00000000003130DE003130DE006BBE6B0029BA5A0029C36B0021D3 4A0029C7630029C36B0039C77300DEF7E700000000000000000073DF940018CF 420010B6290008B2180021792100000000006BBE6B0029BA5A0029C36B0029C3 6B007BDBA5000000000000000000ADE7BD0018BA4A0018BA420010BA390010B6 310010B6290008B218002179210000000000A5AEAD009C968C00CEC7B5000000 00006B6963005A494A0042383900E7DFD600E7DFDE005A4129006B4118006338 2100CEC7BD00C6B6AD009C968400A5AEAD003130DE003130DE00000000000000 0000B5B6FF008486F7005A59EF003130DE003130DE005A59EF008486F700B5B6 FF0000000000000000003130DE003130DE0039AE390029C36B0029C36B007BE7 8C0094E3B50094E3B50094E3B500A5E7BD000000000000000000000000006BDF 840010B6310010B63100007910000000000039AE390029C36B0029C36B007BDB A5000000000000000000F7FBF70094DFAD0094DFAD008CDFA5008CDFA5008CDF 9C0010B6310010B631000079100000000000C6513900F7D7CE0094968C00CEC7 B500EFE7DE00EFE7E700EFE7E700E7E7DE00E7E7DE00DED7D600D6D7CE00D6CF C600C6B6AD009C968400E7D7D600C65139003130DE003130DE00000000000000 00008486F7005A59EF003130DE00B5B6FF00B5B6FF003130DE005A59EF008486 F70000000000000000003130DE003130DE0039B6390029C36B004ACB7B00EFFF EF0000000000000000000000000000000000000000000000000000000000EFFF EF0018BA420018BA3900088E18000000000039B6390029C36B004ACB7B000000 0000000000000000000000000000000000000000000000000000000000000000 000018BA420018BA3900088E180000000000A59E9C00C6513900F7D7CE009496 8C00CEC7B500E7DFDE00EFE7E700EFE7DE00EFE7DE00E7D7D600D6CFC600C6BE AD009C968400EFD7D600C6513900ADA6A5003130DE003130DE00000000008486 F7005A59EF003130DE00B5B6FF000000000000000000B5B6FF003130DE005A59 EF008486F700000000003130DE003130DE0039BA390031C36B0029C36B0073E3 84008CDFA5008CDFA50094DFAD0094DFAD00F7FBF70000000000000000006BDF 8C0021BE520018BA4200088210000000000039BA390031C36B0029C36B007BDB A500000000000000000000000000A5E7BD0094E3B50094E3B50094E3B50094DF AD0021BE520018BA4200088210000000000000000000A59E9C00C6513900F7D7 CE0094968C00CEC7B500E7DFDE00EFE7E700EFE7DE00DED7CE00C6BEB5009C96 8400EFD7D600C6513900ADA6A500000000003130DE003130DE008486F7005A59 EF003130DE00B5B6FF0000000000000000000000000000000000B5B6FF003130 DE005A59EF008486F7003130DE003130DE007BD37B0042C7630042C7730010CB 310010BE310018BA420018BA4A00ADE7BD00000000000000000073DF940021D3 520021BE5A0021BE5A0031963900000000007BD37B0042C7630042C7730029C3 6B007BDBA5000000000000000000DEF7E70039C7730029C36B0029C36B0029C3 630021BE5A0021BE5A0031963900000000000000000000000000A5716300C651 3900F7D7C600948E8C00CEC7B500E7D7D600DED7D600CEBEB5009C968400EFD7 D600C6513900ADA6A50000000000000000003130DE003130DE003130DE003130 DE00B5B6FF00000000000000000000000000000000000000000000000000B5B6 FF003130DE003130DE003130DE003130DE00D6EBD60031BE390073D7940039CF 5A0010C7290010BA29009CE3AD0000000000000000006BDB8C0018CF4A0029CB 5A0029C36B0018A639008CBE8C0000000000D6EBD60031BE390073D7940052CF 840031C773007BDBA5000000000000000000A5E7BD0029C36B0029C36B0029C3 6B0029C36B0018A639008CBE8C00000000000000000000000000A5716300CE41 2100C6513900FFD7C60094968C00CEC7B500CEC7B5009C968400EFD7D600C651 3900ADA6A5000000000000000000000000003130DE003130DE003130DE008486 F700A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6FF00A5A6 FF008486F7003130DE003130DE003130DE00F7F3F7006BD36B0073D7840084DB A50042D3630018CB310094EBA500EFFFEF005ADB730018CF390021CB520029C3 6B0029BE630021962900E7EFE70000000000F7F3F7006BD36B0073D7840084DB A50063D38C0042CB7B0084DBA500F7FBF7008CDFAD0029C36B0029C36B0029C3 6B0029BE630021962900E7EFE700000000000000000000000000C6301800AD18 080063080000C6513900EFD7CE009496840094968C00E7D7D600C6513900ADA6 A500000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000E7F3E70039C739007BD7 84009CE3AD0073D79C005ACF840039C7730029C36B0029C36B0029C36B0029BE 5A00189E2100C6E3C600000000000000000000000000E7F3E70039C739007BD7 84009CE3AD0073D79C005ACF840039C7730029C36B0029C36B0029C36B0029BE 5A00189E2100C6E3C60000000000000000000000000000000000FF514A00DE41 31009C080000AD9E9C00C6513900FFCFC600FFCFC600C6513900ADA6A5000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000E7F3E7006BD3 6B004ACB4A0084DB94008CDFA5006BD394004ACB840029BE630018B2310042B2 4200C6E3C6000000000000000000000000000000000000000000E7F3E7006BD3 6B004ACB4A0084DB94008CDFA5006BD394004ACB840029BE630018B2310042B2 4200C6E3C6000000000000000000000000000000000000000000DE412900CE38 2100CE38210000000000AD9E9C00C6513900C6513900ADA6A500000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000F7F3 F700D6EFD6007BD77B0039C7390039C3390039BE39006BCB6B00B5E3B500F7F3 F70000000000000000000000000000000000000000000000000000000000F7F3 F700D6EFD6007BD77B0039C7390039C3390039BE39006BCB6B00B5E3B500F7F3 F70000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000200000000100010000000000000100000000000000000000 000000000000000000000000FFFFFF0000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000008001FFFFFFFFFFFF8001FFFFE00FE00F 80010000C007C00780011FF88003800380010FF0000101019001066001810301 9001200400C106011000300C00E10C010000300C0FE11FF10000218400610E01 800103C000C10601C00307E001810301C007000000010001C00FFFFF80038003 C01FFFFFC007C007C43FFFFFE00FE00F} end end