本文整理自网络,侵删。
var Bitmap1, Bitmap2, Bitmap3, Bitmap4: TBitmap;
procedure TForm1.FormCreate(Sender: TObject);begin ComboBox1.Style := csOwnerDrawVariable;
//Set height of one item ComboBox1.ItemHeight := 20;
//load all bitmaps
Bitmap1 := TBitmap.Create; Bitmap1.LoadFromFile('chem16.bmp');
Bitmap2 := TBitmap.Create; Bitmap2.LoadFromFile('chip16.bmp');
Bitmap3 := TBitmap.Create; Bitmap3.LoadFromFile('factry16.bmp');
Bitmap4 := TBitmap.Create; Bitmap4.LoadFromFile('skylin16.bmp');
//assign bitmaps with item objects - caption of the items: Bitmap 1 - Bitmap 4
ComboBox1.Items.AddObject('Bitmap 1', Bitmap1); ComboBox1.Items.AddObject('Bitmap 2', Bitmap2); ComboBox1.Items.AddObject('Bitmap 3', Bitmap3); ComboBox1.Items.AddObject('Bitmap 4', Bitmap4);end;
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);var Bitmap: TBitmap; Offset: Integer;begin offset := 0; with ComboBox1.Canvas do begin FillRect(Rect); Bitmap := TBitmap(ComboBox1.Items.Objects[Index]); if Bitmap nil then begin //copy bitmap to combobox coordinate BrushCopy(Bounds(Rect.Left + 2, Rect.Top + 2, Bitmap.Width, Bitmap.Height), Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), clred); Offset := Bitmap.Width + 8; end; //Set a caption to each item TextOut(Rect.Left + Offset, Rect.Top, Combobox1.Items[Index]); end;end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin //free all bitmap objects bitmap1.Free; bitmap2.Free; bitmap3.Free; bitmap4.Free;end;//该代码片段来自于: http://www.sharejs.com/codes/delphi/8755
相关阅读 >>
Delphi中组件panel、splitter、groupbox、按钮组件(checkbox...)、计时器、滚动条、多选卡
Delphi10.3构造一个json数据的第二种方法,并格式化输出
更多相关阅读请进入《Delphi》频道 >>