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

Delphi 使用Canvas美化ListBox列表项

于 2022-06-01 发布 文件大小:6.24 kB
0 201
下载积分: 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 显示文件的播放进度,使用了Timer实现对进度的计算和显示。
    2022-05-28 13:11:17下载
    积分:1
  • Delphi 将字符串中的任意字符转换成大写
    Delphi 将字符串中的任意字符转换成大写,可将给定一串字符中指定的字符转换成大写,如示例运行效果所示,将字符串中的所有l字符变成大写的L。
    2022-04-23 13:34:26下载
    积分:1
  • Delphi 监控剪贴板的文字内容
    Delphi 监控剪贴板的文字内容,这个监控程序可以监控复制到剪切板的文字信息,图片暂时不能监控到,具体的监控实现如下:   NextformHwnd:HWND;//观察链中下一个窗口句柄   procedure WMDrawClipBoard(var AMessage:TMessage);message WM_DRAWCLIPBOARD;   //处理WM_DRAWCLIPBOARD消息过程    { Public declarations }   //将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口   SendMessage(NextformHwnd,AMessage.Msg,AMessage.WParam,AMessage.LParam);   //查询剪贴板中特定格式的数据内容   if (Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT)) then   begin    //处理剪贴板中内容    memo1.Lines.Clear;    memo1.Lines.Add(Clipboard.asText);   end;
    2022-01-22 10:48:45下载
    积分:1
  • Delphi7利用鼠标绘制矩形焦点的
    本源代码主要演示Delphi7利用鼠标绘制矩形焦点,画出虚线框矩形,按住鼠标左键抖动矩形区域,即可显示虚线矩形框,可应用于需要拖动选择对象时作为选区使用,在Delphi中,这个功能使用Canvas实现:   procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,    Y: Integer);   begin    if IsDraw then    begin    if Count >1 then    DrawFocusRect(Canvas.Handle,FocuRect);    FocuRect.Right := X;    FocuRect.Bottom := Y;    DrawFocusRect(Canvas.Handle,FocuRect);    Inc(Count);    IsEndDraw := True;    end;   end;
    2023-02-14 21:35:04下载
    积分:1
  • Delphi 使DBGrid支持鼠标滚轮
    Delphi 使DBGrid支持鼠标滚轮,测试前请确保程序已连接好数据库,否则会有很长一段时间反应,读取的数据会显示在DBGrid控件中,请在DBGrid组件中滚动鼠标滚轮,可将整个列表上下滚动,便于浏览数据,这个功能在一些软件中经常会遇到,具体编写思路请下载源码研究。
    2022-04-12 01:26:52下载
    积分:1
  • Delphi 控制Canvas上的直线点跟随鼠标移动
    Delphi 怎样让Canvas上直线的一个端点跟着鼠标跑,控制Canvas上的直线点跟随鼠标移动,其实这就是画线的基本方法,直线的一端确定后,另一端需要鼠标移动来指定端点,本程序的功能就是让线段的另一头跟随鼠标移动,以确定线段的最终位置。
    2022-02-25 18:56:03下载
    积分:1
  • Delphi 使用tfilestream方式复制文件
    Delphi 使用tfilestream方式复制文件,你可参考本源码,学习一下OpenDialog、Tfilestream.Create、showmessage、CopyFile的用法,本实例复制文件,是通过读取文件流,保存文件流的方式复制,并不是使用命令复制文件。
    2022-01-21 03:12:02下载
    积分:1
  • Delphi getTime 获取当前日期时间实例
    Delphi getTime 获取当前日期时间,用的是DateTimeToStr,运行本窗口后,自动获取当前电脑上的时间,显示在窗体指定的Lable标签中,这是核心的源代码:   procedure TForm1.Timer1Timer(Sender: TObject);   begin    Label1.Caption := DateTimeToStr(now());   end;
    2022-11-15 02:10:03下载
    积分:1
  • Delphi 将TDBGrid导入到Excel表中附数据库
    Delphi7.0将TDBGrid导入到Excel表中,测试程序先连接好SQLSERVER数据库,并将数据读取到TDBGrid中,然后再将数据从TDBGrid导入到Excel表中,为了测试方便,SQLSERVER数据库文件已经附在源码包中。以下代码片断会有参考意义,完整源码请下载:   //将TDBGrid表中的标题插入到Excel表中的首行   for I:=0 to DbName.Columns.Count-1 do   begin    if DbName.Columns[i].Visible=False then    Continue;    Page.Cells[j,i+1] := DbName.Columns[i].Title.Caption;    Page.Cells[j,i+1].Font.Bold := True; //设置字体为粗体   end;   Inc(j); //Excel表中的下一行   First; //将指针返回到TDBGrid表中数据的首行   while not Eof do   begin    for i:=0 to DbName.Columns.Count-1 do    begin    if DbName.Columns[i].Visible=False then    Continue;    //将指定行中每列的数据,添加到Excel表中    Page.Cells[j,i+1] := trim(DbName.DataSource.DataSet.Fieldbyname(DbName.Columns[i].FieldName).asstring);    end;    Inc(j); //Excel表中的下一行    Next; //TDBGrid表中的下一条记录   end;
    2022-06-29 23:05:07下载
    积分:1
  • Delphi 【Frame3D】函数的应用实例-三维框
    Delphi 函数【Frame3D】的应用,该函数用于在画布上绘制一个3维框图:   implementation   {$R *.dfm}   procedure TFrmFrame3D.FormCreate(Sender: TObject);   begin    Bc:=Rect(80,50,100,200);   end;   procedure TFrmFrame3D.FormPaint(Sender: TObject);   begin    Frame3D(canvas,Bc,clblack,clAppWorkSpace,2);   end;   procedure TFrmFrame3D.Button1Click(Sender: TObject);   begin    Bc:=Rect(strtoint(Edx.text),strtoint(Edy.Text),strtoint(EdH.Text),strtoint(EdW.Text));    Frame3D(canvas,Bc,clblack,clAppWorkSpace,2);   end;
    2022-06-16 08:51:26下载
    积分:1
  • 696516资源总数
  • 106457会员总数
  • 15今日下载