现在的位置: 首页 > 综合 > 正文

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

2012年05月09日 ⁄ 综合 ⁄ 共 1032字 ⁄ 字号 评论关闭
如何在 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;

抱歉!评论已关闭.