有没有带图标的ComboBox控件?
先谢谢! 问题点数:20、回复次数:9Top
1 楼luoshumeng(乡村意外)回复于 2002-05-29 08:29:24 得分 0
有呀,就是ComboboxEx呀,在WIN32那一面板中!Top
2 楼Kingron(单身走我路……)回复于 2002-05-29 08:36:12 得分 0
ComboBoxEx要Delphi6里面才有吧?Top
3 楼liuhelin(鹤林)回复于 2002-05-29 08:42:12 得分 0
也可以设置ownerdraw然后自己画Top
4 楼Liusp(夜深千帐灯)回复于 2002-05-29 08:45:05 得分 0
我用D5!Top
5 楼slwqw(四大名捕之追杀令)回复于 2002-05-29 08:55:43 得分 0
我手头有这样的控件,把你的E-Mail贴出来,我发给你.Top
6 楼superljj()回复于 2002-05-29 09:02:55 得分 10
自己做,很简单的。
procedure TUser_EditForm.ComboBox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
Btm:TBitmap;
begin
Btm:=TBitmap.create;
ComboBox1.Canvas.StretchDraw(Rect,Btm);
ComboBox1.Canvas.Brush.Bitmap:=nil;
end;Top
7 楼Liusp(夜深千帐灯)回复于 2002-05-29 09:25:30 得分 0
superljj():
好象没起什么作用?Top
8 楼ehom(?!)回复于 2002-05-29 11:20:07 得分 0
需要将style设为csOwnerDrawFixe或csOwnerDrawVariable
Top
9 楼I_am_zealot(狂战士)回复于 2002-07-03 20:40:22 得分 10
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var bitmap:TBitmap;
pos:Integer;
begin
with Control as TComboBox do begin
Canvas.FillRect(Rect);
bitmap:=TBitmap(Items.Objects[Index]);
pos:=0;
if Bitmap<>nil then begin
Canvas.BrushCopy(Bounds(Rect.Left+2,Rect.Top+2,bitmap.Width,bitmap.Height),
bitmap,Bounds(0,0,bitmap.Width,bitmap.Height),clRed);
pos:=bitmap.width+8;
end;
Canvas.TextOut(Rect.Left+pos,Rect.Top,Items[Index]);
end;
end;
procedure TForm1.ComboBox1MeasureItem(Control: TWinControl; Index: Integer;
var Height: Integer);
begin
Height:=20;
end;
procedure TForm1.Button1Click(Sender: TObject);
var bitmap:TBitmap;
begin
bitmap:=TBitmap.Create;
try
bitmap.LoadFromFile(DirectoryListBox1.Directory+'\'+Edit1.Text);
except
bitmap:=nil;
end;
ComboBox1.Items.AddObject(Edit2.Text,bitmap);
end;
end.Top




