如何在 listbox中每行中添加图标

如何在 listbox中每行中添加图标 VCL组件开发及应用
http://www.delphi2007.net/DelphiVCL/html/delphi_20061226161818102.html
如何在   listbox中每行中添加图标

procedure   TfrmMain.lbLanmuDrawItem(Control:   TWinControl;   Index:   Integer;  
      Rect:   TRect;   State:   TOwnerDrawState);  
   
  begin  
      with   Control   as   TListBox   do   begin  
          Canvas.FillRect(Rect);  
          ilType.Draw(Canvas,Rect.Left,Rect.Top+2,index+1);   //绘图,ilType-TImageList  
          Canvas.TextOut(Rect.Left+ilType.Width+4,Rect.Top+8,Items.Strings[index]);  
      end;  
  end

假设我已经把ico放在了imagelist中了呢?

先将ListBox的Style属性设为lbOwnerDrawFixed  
   
  procedure   TForm1.ListBox1DrawItem(Control:   TWinControl;   Index:   Integer;  
      Rect:   TRect;   State:   TOwnerDrawState);  
  var  
      AColor:   TColor;  
  begin  
      with   TListBox(Control)   do  
      begin  
          Canvas.Brush.Color   :=   Color;  
          Canvas.Brush.Style   :=   bsSolid;  
          Canvas.FillRect(Rect);  
          ImageList1.Draw(Canvas,   Rect.Left,   Rect.Top,   0);  
          AColor   :=   ColorToRgb(Color)   xor   $FFFFFF;  
          Canvas.Font.Color   :=   AColor;  
          Canvas.TextOut(ImageList1.Width   +   2,   Rect.Top,   Items[Index]);  
      end;  
  end;

转载于:https://www.cnblogs.com/delphi2007/archive/2008/09/16/1291702.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值