登录
首页 » Delphi源码 » Delphi 使用Canvas美化ListBox列表项

Delphi 使用Canvas美化ListBox列表项

于 2022-06-01 发布 文件大小:6.24 kB
0 92
下载积分: 2 下载次数: 1

代码说明:

Delphi 使用Canvas美化列表项,当用户鼠标单击ListBox列表项时,该列表项高亮显示,改变背景色,文字居中对齐,如图所示。   主要是使用了Delphi中的Canvas.FrameRect对其进行美化,具体代码有兴趣可参考:   Canvas.FrameRect(Clientrect);   if odSelected in State then   begin    Canvas.Brush.Color:=clRed;    Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,8,15);    setBkMode(Canvas.Handle,TRANSPARENT );    Canvas.TextOut((Rect.right-Rect.Left) div 2,Rect.Top,Items.Strings[Index]);   end   else   begin    Canvas.Brush.Color:=clSkyBlue;    Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,15,15);    Canvas.TextRect(Rect,Rect.Left,Rect.Top,Items.Strings[Index]);   end;

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • Delphi 多帧动画播放
    Delphi 多帧动画播放,Delphi将多幅连续的BMP图像显示在一起,形成了动画的效果,类似于GIF的类型动画。每一张图片都是一帧,将帧快速的连起来,就形成了动画效果。
    2023-07-24 05:15:03下载
    积分:1
  • Delphi 演示使用演示Brush对象的各种风格
    Delphi 演示使用演示Brush笔刷对象后生成的各种风格,一种演示了7种笔刷效果,定义了一个存储绘图风格的7维数组,然后使用For循环对绘图风格数组赋值,然后使用Canvas.Brush.Style来预览风格。这些笔刷风格都是浅色彩的风格。
    2022-07-08 18:13:17下载
    积分:1
  • 一个相当不错的Delphi TreeView树控菜单
    一个Delphi编写的相当不错的TreeView树控菜单,类似于Windows资源管理器中的树状菜单。   ParentFolder: IShellFolder; // 节点对应的文件夹的父文件夹的IShellFolder接口   Pidl, FullPidl: PItemIDList;// 节点对应的文件夹的相对和绝对项目标识符列表   HasExpanded: Boolean; // 节点是否展开   通过这个树形菜单制作实例,你可以学习到几个对项目标识符进行操作的函数,同时还有将二进制表示的项目标识符列表转换成有可识的项目名,获得每个文件夹在系统中的图标,获得系统的图标列表,生成文件夹管理树等。
    2022-02-01 01:44:12下载
    积分:1
  • Delphi 提高图像的亮度和对比度
    Delphi 提高图像的亮度,每次只能提升一点高度,用着比较麻烦,不过解析图像部分可以借鉴下。以下代码可参考,不过我没发现哪里是调节图片亮度的:   PByte := ImageBmp.scanline[y];   for x:=0 to ImageBmp.Width-1 do   begin    if (PByte[x*3]
    2023-09-02 06:40:03下载
    积分:1
  • Delphi7 向XML中添加RTTI信息
    Delphi7.0 向XML中添加RTTI信息,这个例子挺简单,希望大家喜欢,面向Delphi新手的,高手请绕道哦,下面是本例Delphi向XML中添加RTTI信息的关键性代码:   procedure TForm1.ComponentToDOM(iNode: IXmlNode; Comp: TPersistent);   var    nProps, i: Integer;    PropList: PPropList;    Value: Variant;    newNode: IXmlNode;   begin    nProps := GetTypeData (Comp.ClassInfo)^.PropCount;    GetMem (PropList, nProps * SizeOf(Pointer));    try    GetPropInfos (Comp.ClassInfo, PropList);    for i := 0 to nProps - 1 do    begin    Value := GetPropValue (Comp, PropList [i].Name);    NewNode := iNode.AddChild(PropList [i].Name);    NewNode.Text := Value;    if (PropList [i].PropType^.Kind = tkClass) and (Value 0) then    if TObject (Integer(Value)) is TComponent then    NewNode.Text := TComponent (Integer(Value)).Name    else    ComponentToDOM (newNode, TObject (Integer(Value)) as TPersistent);    end;    finally    FreeMem (PropList);    end;   end;
    2022-01-26 03:00:57下载
    积分:1
  • Delphi 使同类的组件进行同样的操作
    Delphi 使同类的组件进行同样的操作的一个实例,类似于将WEB表单统一清空的功能,点击按钮后,所有文本框组件的内容被清空,作用在相同的组件实例上,代码:   procedure TForm1.Button2Click(Sender: TObject);   begin    Close;   end;      procedure TForm1.Button1Click(Sender: TObject);   var    ClearText : Integer;   begin    For ClearText := 0 to Form1.ComponentCount -1 do    begin    //判断如果窗体中包含文本框组件,则将所有文本框组件的内容清空    if Form1.Components[ClearText] is TEdit then    begin    TEdit(Components[ClearText]).Clear;    end;    end;   end;
    2022-05-23 05:25:03下载
    积分:1
  • Delphi开发的模型飞机测控平台 附
    Delphi开发的模型飞机测控平台 附源代码,里面主要涉及多线程操作、GPS、传感器、端口操作等一系列系统控制的技巧,还包括了许多操作函数,比如绘制飞行轨迹的函数、绘制坐标刻度的函数、用户界面读取发送数据指令的函数、还有线程的同步、线程互斥等。   由于有调试目的,如果要求发送字符格式的数据,就直接发送用户输入的字符串,其他情况下,都是发送打包好的数据矩阵。   调用其它函数实现发送串口数据的功能。注意函数GetData还没有实现线程的互斥,目的是把发送的数据保存在各个线程中。   在此提示: 由于传输系统总会有一定的吴码率,那么为了避免轨迹图出现问题,例如坐标范围过大需要除去粗大误差,考虑到模型飞机的飞行速度不会超过10m/s,考虑到数子传输系统的下传速度,设定如果位置变化超过20m就去掉。
    2022-08-16 19:54:45下载
    积分:1
  • Delphi 获取拖动到窗体中的文件的路径
    Delphi 获取拖动到窗体中的文件的路径,这实际上是一个拖放打开文件的例子,这只不是其中的一个步骤,拖放打开是把文件拖放到本窗口中,直接打开该文件,而拖放得到路径是把文件的路径显示在窗口中,和打开文件其实难易程序是一样的。拖放后获取文件路径,代码如下:   procedure TForm1.FileIsDropped(var Msg: TMessage);   var    NumFiles : longint;    i : longint;    FName : array[0..255] of char;   begin    SetForegroundWindow(Handle);    NumFiles := DragQueryFile(Msg.WParam,$FFFFFFFF,nil,0);    for i := 0 to (NumFiles - 1) do    begin    DragQueryFile(Msg.WParam,i,FName,sizeof(FName));    Memo1.Lines.Add(FName);    end;   end;
    2022-09-25 15:45:03下载
    积分:1
  • Delphi 控制Canvas上的直线点跟随鼠标移动
    Delphi 怎样让Canvas上直线的一个端点跟着鼠标跑,控制Canvas上的直线点跟随鼠标移动,其实这就是画线的基本方法,直线的一端确定后,另一端需要鼠标移动来指定端点,本程序的功能就是让线段的另一头跟随鼠标移动,以确定线段的最终位置。
    2022-02-25 18:56:03下载
    积分:1
  • Delphi数据库编程案例:教材管理系统
    这是一款基于Delphi和Access数据库的编程案例:教材管理系统源码,经过修正完善后可作为学校的教材管理程序,功能模块主要有:系统功能设置、教材资料输入、教材出入库管理、教材信息管理等。
    2022-04-14 14:29:20下载
    积分:1
  • 696518资源总数
  • 104292会员总数
  • 28今日下载