首页 > 其他分享 >VCL下ListBox自画

VCL下ListBox自画

时间:2023-06-15 16:24:20浏览次数:56  
标签:ImageList1 LixtBox1 自画 Color Top VCL ListBox Rect Left

最终效果图:

 ListBox的两个设置:

自画事件:LixtBox1DrawItem

procedure TForm1.LixtBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
    With LixtBox1.Canvas Do
    Begin
      Brush.Color := $00FF9184; //设置背景颜色并填充背景
      FillRect(Rect);

      Brush.Color := clBlack; //设置圆角矩形颜色并画出圆角矩形
      Pen.Color := $00131315;
      RoundRect(Rect.Left + 3, Rect.Top + 3, Rect.Right - 3, Rect.Bottom - 3, 5, 5);

      Brush.Color := $00A2F9F0;
      Pen.Color := clInfoBk;
      RoundRect(Rect.Left + 3, Rect.Top + 3, Rect.Right - 6, Rect.Bottom - 6, 5, 5); //以不同的宽度和高度再画一次,实现立体效果

      If (odSelected In State) Then {//如果是当前选中项}
      Begin
        Brush.Color := $00BBBBFF; //以不同的背景色画出选中项的圆角矩形
        RoundRect(Rect.Left + 3, Rect.Top + 3, Rect.Right - 3, Rect.Bottom - 3, 5, 5); //选中项的文字颜色
      End;
      ImageList1.Draw(LixtBox1.Canvas, Rect.Left + 6, //画出图标
        Rect.Top ,
        index, true);

      Font.Color := $00A25155; //分别绘出各行文字
      TextOut(Rect.Left + ImageList1.Width + 10, Rect.Top + 4, '测试');
      Font.Color := $0F01630E;


      TextOut(Rect.Left + ImageList1.Width + 15, Rect.Top - (LixtBox1.Font.Height - 4) + 2, '语言: ' );
      TextOut(Rect.Left + ImageList1.Width + 10, Rect.Top - (LixtBox1.Font.Height - 4) * 2, '文章总数: ' );

      If (odFocused In State) Then LixtBox1.Canvas.DrawFocusRect(Rect);
    End;
End;

 ImageList1的宽和高

测试图标下载“

链接:https://pan.baidu.com/s/1eCLTHlpc06CwH1WL9AgHkw
提取码:83rn

标签:ImageList1,LixtBox1,自画,Color,Top,VCL,ListBox,Rect,Left
From: https://www.cnblogs.com/tulater/p/17483241.html

相关文章

  • 报表控件FastReport VCL v2023.2 - 将Delphi 产品整合到单一系统
    FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开发中的报表信息输出为TXT、PDF等多种文件格式,是编程开发人员必备的报表工具。FastReportVC......
  • VCL 中的 Windows API 函数: BeginDeferWindowPos
    BeginDeferWindowPos和DeferWindowPos、EndDeferWindowPos是一组一起使用的函数,可对一组窗口的位置、大小、Z序等进行调整,在ExtCtrls单元有用到.下面先用常规方法实现对Panel1中的一组Button进行调整,然后再用上面三个函数重新实现.用BeginDeferWindowPos、Defer......
  • VCL 中的 Windows API 函数: AlphaBlend
    AlphaBlend是指定图像混合透明的函数,在Graphics、GraphUtil、RibbonStyleActnCtrls单元用到.下面的测试是把一张图片显示在窗体,并可以调整透明度.、 unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, ......
  • 第6-1讲,Listbox 列表框控件
    Listbox列表框控件在与用户交互的过程成中,如果需要用户自己做出选择,可以使用列表框控件.importtkinterastk#创建一个窗口window=tk.Tk()#创建窗口的标题window.title("listbox")#设置窗口的大小window.geometry('500x400')#设置窗体的图标window.iconbitmap('../......
  • 全面的VCL界面控件DevExpress VCL v22.2.5全新发布
    DevExpressVCL Controls是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。DevExpressVCLv22.2.5正式版下载更......
  • C# ListBox 垂直滚动条自动下滚方法
    方法一:this.listBox1.SelectedIndex=this.listBox1.Items.Count-1;方法二:this.listBox1.TopIndex=this.listBox1.Items.Count-(int)(this.listBox1.Height/this.listBox1.ItemHeight);方法三:usingSystem.Runtime.InteropServices;[DllImport("User32.dl......
  • 01]TMS FlexCel VCL & FMX v7.8的下载和安装
    00]TMS FlexCel VCL & FMX v7.8的下载链接:https://pan.baidu.com/s/12RhG-d6nsX5EZx0bVtIrFw提取码:mhq201]TMSFlexCelVCL&FMXv7.8的安装DELPHI10.3安装TMSFlexCelVCL&FMXv7.8方法:1、文件解压到:D:\TMSFlexCelVCL&FMXv7.82、添加路径:D:\TMSFlexCelVCL......
  • WinForm的Listbox控件实现拖拽数据功能
    WinForm的Listbox控件实现拖拽数据功能相关函数:MouseDownDragDropDragEnter思路:当左侧的空间鼠标按下(MouseDown)以后,触发DragDrop操作,然后移动到右侧控件中,将会触发右侧控件的DragEnter事件。右侧同理MouseDown:触发拖动操作DragDrop:从当前容器中拖拽动作完成时的操作(发......
  • WPF ItemsControl/ListBox/ListView 控件样式
    一、前言ItemsControl、ListBox、ListView这三种控件在WPF中都可作为列表信息展示控件。我们可以通过修改这三个控件的样式来展示我们的列表信息。既然都是展示列表信息......
  • Winform C# .Net中给ListBox加ToolTip提示
    1、首先,在工具箱中将ToolTip控件拖入到Winform界面下方。2、接着,在指定的ListBox添加:XXX_MouseMove事件(如已添加则忽略此步)。其中:XXX为您的控件名称。3、在该事件中添加如此......