在delphi中更改字段值的DBGRID行颜色

2023-12-23

如何更改delphi中字段上具有相同值的dbgrid行的颜色?

例如具有相同老师的所有行

注意:这些行被分组,并且在 dbgrid 中彼此相邻

提前致谢


您可以使用 DBGrids onDrawColumnCell 事件轻松实现此操作:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 if Table1.FieldByName('Teacher').AsString = 'Joe'
 then
  DBGrid1.Canvas.Brush.Color:=clRed;
 DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);  

end;

但是,如果您不知道老师的名字,那么您将不得不实施某种递归操作,这是我的实施:

var TeacherStringList : TStringList;
    lastColorUsed : TColor;
    AColors : Array of TColor;


function mycolor: TColor;
begin
  result := RGB(Random(256), Random(256), Random(256));
end;

procedure TForm3.Button1Click(Sender: TObject);
var CurrS : String;
    Index : Integer;
begin

  if TeacherStringList.Count <> 0 then TeacherStringList.Clear;
  Table1.DisableControls;
  try
    while not Table1.Eof do
    begin

      CurrS := Table1.FieldByName('Teacher').AsString;
      if (not TeacherStringList.Find(CurrS,Index)) and (not currS.IsEmpty)
      then  TeacherStringList.Add(CurrS);
      Table1.Next;

    end;
    Table1.First;
    SetLength(AColors,TeacherStringList.Count);
    for Index := Low(AColors) to High(AColors)
    do AColors[Index] := mycolor;

  finally
    Table1.EnableControls;
  end;

end;

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var Index : integer;

begin

  if (TeacherStringList.Find(Table1.FieldByName('Teacher').AsString,Index))
  then 
    DBGrid1.Canvas.Brush.Color:= AColors[index];

  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  teacherStringList := TStringList.Create;
  teacherStringList.Sorted := True;
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
  teacherStringList.Free;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在delphi中更改字段值的DBGRID行颜色 的相关文章

  • 调用泛型类型的方法?

    为什么下面的代码在 Delphi XE 中会产生错误 unit UTest interface type TTest class public procedure Foo
  • CSS 文本装饰:反向

    我很惊讶 CSS 中没有 text decoration reverse 因为使用 JavaScript 来实现似乎非常尴尬 IE 将元素的前景色和背景色分别设置为父元素的背景色和前景色 我注意到了 JavaScript 技术here ht
  • 如何计算位图的平均 RGB 颜色值

    在我的 C 3 5 应用程序中 我需要获取位图的红色 绿色和蓝色通道的平均颜色值 最好不使用外部库 这可以做到吗 如果是这样 怎么办 提前致谢 尝试让事情变得更精确 位图中的每个像素都有一定的 RGB 颜色值 我想获取图像中所有像素的平均
  • 获取字符、整数和日期字段的字段 oldValue 和 newValue

    我试图只保留表更改的历史记录 所以我想获取一个字段在更改为oldValue之前的值 然后获取它更改为newValue的值 两个值都应转换为字符串 因此 这是该表的一个示例 PartNumber Description 12345 Test
  • 在 Delphi XE 中将类作为过程的参数传递

    我需要做的是这样的 procedure A type of form var form TForm begin form type of form Create application form showmodal freeandnil f
  • Eclipse,在哪里更改当前调试行背景?

    任何人都可以向我指出具有以下设置的首选项页面DEBUG当前行背景颜色 我已经将几乎所有颜色更改为深色 但在调试时仍然对这个几乎白色的当前行指示器感到恼火 请注意 编辑模式下的当前行指示是可以的 好吧 现在我自己找到了它 通过主要的逆向工程
  • Delphi如何使用其他窗体中的类型?

    抱歉 这是一个非常新手的问题 我正在对这个庞大的应用程序进行维护 它有5种不同的形式 我们将全局变量放在一个单元 uGlobal 中 但我似乎无法从数据单元 uData 访问它 我有这个 Unit uGlobal type TmyType
  • Delphi 2007 中的 HelpInsight 文档

    我正在使用 D2007 并尝试使用 HelpInsight 功能 自 D2005 起提供 来记录我的源代码 我主要对让 HelpInsight 工具提示正常工作感兴趣 通过各种网上冲浪和实验 我发现了以下内容 使用三斜杠 注释样式比其他记录
  • Delphi XE2 Firemonkey 示例应用程序未在 MAC 上运行

    我正在尝试在 Mac 上运行示例 Firemonkey 应用程序 但我在 Mac 中收到以下消息 dyld Library not loaded rpath libcgunwind 1 0 dylib Referenced from Use
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 以 png 格式剪辑幻灯片 (Delphi 2010)

    I have a filmstrip of images in png format like this 我想知道如何剪辑每个图像并将这些图像放入 TImageList 控件中 并始终保留透明度 EDIT 是的 在设计时 RRUZ 提到的技
  • 与 Write-Host 相比,Write-Output 的使用非常不可靠

    有人指出一个问题 如果我希望命令按顺序操作 建议使用 Write Output 而不是 Write Host 因为 Write Host 不会将输出放在管道上 而其他命令却这样做 这意味着 Write Host 输出可以发生在管道上的其他命
  • 使用 TStringList 的分隔符解析字符串,似乎也解析空格(Delphi)

    我有一个简单的字符串 由某个字符分隔 比如说逗号 我应该能够创建一个 TStringList 并将其分隔符设置为逗号 然后将 DelimitedText 设置为我想要解析的文本 并且应该自动解析它 问题是 当我查看输出时 它还包含空格作为分
  • DELPHI 和 WANT 或 NANT

    We use 巡航控制 net http confluence public thoughtworks org display CCNET Welcome to CruiseControl NET在 Delphi 2006 应用程序中进行持
  • Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?

    在我的应用程序 Delphi 中 我需要列出所有 USB 存储设备 这些可以是闪存棒or外部存储驱动器 有一个Jvcl成分JvDriveCombo 并且它有DriveType属性 问题是我是否选择DriveType Fixed那么除了外部驱
  • 在Delphi 7中,为什么我可以给const赋值?

    我将一些 Delphi 代码从一个项目复制到另一个项目 发现它在新项目中无法编译 但在旧项目中可以编译 代码看起来像这样 procedure TForm1 CalculateGP const Price money 0 begin Pric
  • 如何释放 TInterfacedObject 中的 TObject 成员

    我知道接口对象是引用计数的 因此不需要手动释放它 但如果它有一个 TObject 继承成员 我是否应该在析构函数中手动释放该成员 考虑以下代码 program Project2 APPTYPE CONSOLE R res uses Syst
  • 防止多个实例 - 但还要处理命令行参数?

    我正在从我的应用程序处理与 Windows 相关的扩展文件 因此 当您在 Windows 中双击文件时 它将执行我的程序 然后我从那里处理该文件 如下所示 procedure TMainForm FormCreate Sender TObj
  • 通过套接字发送动态数组(在记录内)?

    我正在尝试直接使用 SendBuf 将记录从服务器传输到客户端 但是 该记录有一个动态数组的成员 并且我在某处 在 SOF 中 读到 发送记录时 成员必须是静态的 固定长度 但问题是 我无法确定如何我会 将来 发送许多论点 我怎么解决这个问
  • 如何在iOS的Delphi程序中使用IPv6协议

    我尝试在我的移动程序中使用 IPv6 协议 我的服务器位于 NAT 后面的 LAN 内 在服务器上我使用IP端口3000 我已经组织了从路由器端口 45500 到服务器端口 3000 的虚拟服务器 端口转发 在服务器上 我运行 ipconf

随机推荐

  • Spring data jpa存储库内存中测试用例

    在我的项目中 我编写了一个存储库类 我需要编写内存中测试类 我的存储库代码如下 package org jaap reference repository import java util List import org springfra
  • 统一流畅的动作

    我开始学习统一 我面临着一个我无法摆脱的问题 那就是 但是我试图让动作平滑 它不像通常的视频游戏 无论 FPS 有多高或有多少不同我尝试实现逻辑的方法 我尝试使用固定更新和固定增量时间 但似乎没有什么区别 void Update movem
  • 动态更新配置数据codeigniter

    我创建了自定义配置文件来存储有关站点的信息 例如它是在线还是离线 为此 我在 config 文件夹中创建了新文件 并使用我自己的索引将默认值存储在全局 config 数组中 我想通过管理员控制动态更新这些配置数据 例如 他可以选择将站点置于
  • 不带标签的单选按钮样式

    我现在面临这个问题 我想样式单选按钮 and 复选框由系统生成并没有标签 我正在使用 IBM SPSS Data Collection 进行在线调查 这意味着它会根据我可以设置样式的某个模板 主要是使用 CSS 样式 生成所有页面问题 我发
  • 在应用程序中找不到传递库依赖项

    假设我有一个库模块 其中包含一些第三方库 例如 OkHttp 当我在我的应用程序中包含这个库时 我无法使用这些第三方库 我阅读了以下文章第1条 https stackoverflow com questions 22795455 trans
  • CakePHP 管理部分路由和重定向

    我正在努力解决在 CakePHP 项目中创建管理部分的概念 2 3 5版本 我已取消注释 Config core php 中的行 Configure write Routing prefixes array admin 我在 Config
  • 为什么 Angular 仍然将请求编码为 JSON? ( $http, $httpParamSerializerJQLike )

    我想要有角度的制作x www form urlencoded要求默认情况下 不是 JSON angular 1 4 5 defaults paramSerializer仅用于 URL 构建 不用于POST身体 defaults transf
  • MongoDB - 具有聚合的地理空间索引

    我从 to 文档中读到 不可能在 MongoDB 聚合上使用地理空间索引 有替代方案吗 我正在尝试运行一个查询 获取特定半径内的所有活动 然后按活动发生的次数对它们进行分组 排序 有办法解决这个问题吗 您可以在地理查询上使用map redu
  • 如何将复选框添加到 jQgrid 标题中

    每个 jQgrid 行都有多个复选框 因此我不能 仅 使用多选 这就是该列的设置方式 名称 ColName 标签 宽度 50 可编辑 true 可排序 false edittype 复选框 格式化程序 复选框 格式选项 禁用 false 索
  • 如何为打开表单的大量按钮创建可重用组件

    使用的库 mui 5 4 1 创建一个TableCell含有一个IconButton打开一个Form 代码编写如下 const data id 001 name A price 2000 id 002 name B price 100 co
  • UnicodeEncodeError:“charmap”编解码器无法编码 - 字符映射到<未定义>,打印函数[重复]

    这个问题在这里已经有答案了 我正在编写一个 Python Python 3 3 程序 使用 POST 方法将一些数据发送到网页 主要用于调试过程 我获取页面结果并将其显示在屏幕上使用print 功能 代码是这样的 conn request
  • MATLAB在NumPy/Python中的平滑实现(n点移动平均)

    MATLAB的smooth默认情况下 函数使用 5 点移动平均值平滑数据 在 python 中执行相同操作的最佳方法是什么 例如 如果这是我的数据 0 0 823529411764706 0 852941176470588 0 705882
  • postgis-2.0.so:未定义符号:GETSTRUCT

    当我使用 pg upgrade 检查将 postgresql 9 0 beta2 升级到 postgresql 9 3 beta1 出现以下错误 uptest db 172 16 3 33 gt cat loadable libraries
  • jq json解析器哈希字段值

    我有一个 JSON 文件 如下所示 macAddress ac 5f 3e 87 d7 1a ip 1 2 3 4 macAddress ac 5f 3e 87 d7 2a ip 1 2 3 4 macAddress ac 5f 3e 87
  • Android webView保存状态

    我有一个带有 3 个选项卡的选项卡主机 在每个选项卡中都有一个网络视图 当我单击一个选项卡时 即使我以前去过那里 网络视图也需要 重新加载 但它尚未保存 有什么办法可以保存webview吗 这可以通过在 Activity 中覆盖 onSav
  • 如何将 Outlook-Mail 拖放到 richTextBox 中

    我的 WinForms 应用程序出现问题 我想将 Outlook 邮件拖放到 RichTextBox 中 我发现了很多关于拖放功能的文章 但它们都将邮件文本插入到 rTB 中 请参阅 Link https stackoverflow com
  • 在 Flutter 中只让一个 widget 浮动在键盘上方

    我想在键盘上方可见时显示 关闭键盘 按钮 我知道 resizeToAvoidBottomInset 会影响键盘与应用程序其余部分的交互方式 但它并不能完全满足我的要求 我有一个背景图像和其他小部件 在下面的示例中未显示 当显示键盘时 它们不
  • Chrome 开发者工具用户代理覆盖在模拟其他浏览器方面的效果如何?

    Chrome 开发人员工具具有将用户代理更改为欺骗服务器的功能 使开发人员能够测试其他设备和浏览器的应用程序 而无需在桌面终端上舒适地使用 Chrome 浏览器 我认为 Chrome 会模拟这些其他浏览器 而不是虚拟地模拟它们 Chrome
  • 如何重用 HierarchicalDataTemplate?

    我有两个相同的 HierarchicalDataTemplates 唯一的区别是模板的数据类型
  • 在delphi中更改字段值的DBGRID行颜色

    如何更改delphi中字段上具有相同值的dbgrid行的颜色 例如具有相同老师的所有行 注意 这些行被分组 并且在 dbgrid 中彼此相邻 提前致谢 您可以使用 DBGrids onDrawColumnCell 事件轻松实现此操作 pro