首页 > 其他分享 >(10)Lazarus下ListBox自画

(10)Lazarus下ListBox自画

时间:2024-01-28 18:56:06浏览次数:50  
标签:10 自画 Color Top aRect Lazarus ListBox Left

参考:VCL下ListBox自画,Lazarus也一样

 uses LCLType;       

 

 ListBox的两个设置:

自画事件:ListBox1DrawItem

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

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

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

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

      Font.Color := clRed; //分别绘出各行文字
      TextOut(aRect.Left + ImageList1.Width + 10, aRect.Top + 4,ListBox1.Items[index]);
      Font.Color := $0F01630E;


      TextOut(aRect.Left + ImageList1.Width + 10, aRect.Top+20, '文章总数: a' );

      If (odFocused In State) Then ListBox1.Canvas.DrawFocusRect(aRect);
    End;
End;
       

 先要设置 ImageList1的宽和高,再导入图片,否则,图片会被清空。

测试图标下载:

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

 

标签:10,自画,Color,Top,aRect,Lazarus,ListBox,Left
From: https://www.cnblogs.com/tulater/p/17993141

相关文章

  • 三级计算机网络大题60分——来自B站“吃饭不留名”(综合题4:sniffer抓包分析 10分)
    https://www.bilibili.com/video/BV1hE411x7RT?p=6&vd_source=2bddda168481f778f8f92561c7e55574方法技巧考点1考点2考点3考点4考点5考点6考点7考点8考点9考点9考点10考点11考点12考点13考点14考点15......
  • 2024最新分享iZotope RX 10 Audio Editor Advanced for Mac 直装版
    iZotopeRX10AudioEditorAdvanced是一款先进的音频编辑软件,由iZotope公司推出。以其卓越的音频修复和恢复功能而著称,可消除录音中的噪音、杂音和其他缺陷。RX10集成了先进的算法和直观的用户界面,提供精准而高效的音频修复工具,适用于音乐制作、后期制作和广播领域。软件支持......
  • [word] word 拉丁文数字1到10的对照表以及电脑上怎么打出来
    拉丁文数字实际上就是罗马数字,这么一说,大家基本都知道拉丁文数字啥样了,本文将介绍常用的拉丁文数字1到10的对照以及电脑上怎么打出来。拉丁文数字1到10对照表阿拉伯数字12345678910拉丁文数字ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ拉丁文数字1到10怎么打第一步:下载并安装搜狗输入法;第二步:输入快捷键......
  • [office] Excel中2010版使用自定义名称简化计算公式的操作技巧
    假设企业申报工资基数为员工的基本工资,用户可将“基本工资”所在单元格区域命名为“申报工资基数”,今天,小编就教大家在Excel中2010版使用自定义名称简化计算公式的操作技巧。Excel中2010版使用自定义名称简化计算公式的操作步骤选择“定义名称”选项,在“员工基本信......
  • C语言学习Part2(1000-2000行代码)
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>//头文件,仅标注一次e.g.猜数字游戏//e.g.猜数字游戏//1.电脑生成一个随机数//2.猜数字//3.循环玩#include<stdlib.h>#include<time.h>voidmenu(){ printf("************************\n"); printf("***1.pla......
  • UVA10852 的题解
    UVA10852的题解题目大意给定自然数\(n(100\leqn\leq10000)\),寻找质数\(x\len\),使得\(p\timesx\leqn<(p+1)\timesx\)且\(n-p\timesx\)最大。思路不难发现,\(p\)其实就是$\left\lfloor\frac{n}{x}\right\rfloor$,所以,我们只要找到对应的\(x\),\(p\)的只就......
  • win10使用uefi+gpt启动蓝屏的解决方法
    在电脑使用uefi安装系统后,每次开机都要蓝屏,错误代码0xc000000e,如下图按提示按Esc键后会进入BIOS,直接Esc退出,就能正常启动了。因之前去联想售后安装过系统,启动是没问题的,所以在想是不是系统引导出现了问题,因此开始了漫长的网上搜索过程。不得不吐槽一下,现在网络上的内容真的是......
  • 洛谷题解-P3003 [USACO10DEC] Apple Delivery S (dijkstra)
    题目描述Bessiehastwocrispredapplestodelivertotwoofherfriendsintheherd.Ofcourse,shetravelstheC(1<=C<=200,000)cowpathswhicharearrangedastheusualgraphwhichconnectsP(1<=P<=100,000)pasturesconvenientlynumb......
  • 三级计算机网络大题60分——来自B站“吃饭不留名”(综合题3:DHCP报文分析 10分)
    https://www.bilibili.com/video/BV1hE411x7RT?p=5&vd_source=2bddda168481f778f8f92561c7e55574考点1考点2(和考点3一起考察)考点3考点4知识总结真题演练1(考点1)真题演练2(考点2和考点3)真题演练3(考点2和考点3)真题演练4(考点4)......
  • Uva--10129 Play On Words(欧拉路)
    记录15:422023-5-26reference:《算法竞赛入门经典第二版》例题6-16把字母看作结点,单词看成有向边,则问题有解,当且仅当图中有欧拉路径。有向图欧拉道路(回路)问题,有向图欧拉道路需要基图连通,且度数满足最多只能有两个点的入度不等于出度,而且必须是其中一个点的出度恰好比入......