- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在重写字符串网格的OnDrawCell
。在某些情况下,我想在系统进行绘图时使用用于所选行的常规 TColor
(无 OnDrawCell
)。
那是什么颜色? clXXX ?
最佳答案
在 Delphi 2010 之前,您可以使用 clHighlight
颜色。
在 Delphi 2010 中,TStringGrid、TDrawGrid 和 TDBGrid 组件现在具有 DrawingStyle
属性并根据此值(gdsClassic、gdsGradient、gdsThemed),您必须以此方式计算颜色。
1.对于gdsClassic使用clHighlight
;
2.对于gdsGradient,使用GradientFillCanvas
方法
GradientFillCanvas(Canvas, GetShadowColor(clHighlight, 45), GetShadowColor(clHighlight, 10), LRect, gdVertical);
3.对于gdsThemed调用TCustomStyleServices
的DrawElement
方法
StyleServices.DrawElement(Canvas.Handle, StyleServices.GetElementDetails(tgCellSelected), LRect, ARect);
在Delphi XE2(和XE3)中引入了vcl样式,您必须使用与上面相同的样式,但检查当前样式是否是“自定义样式”(vcl样式)
1.对于gdsGradient使用GradientFillCanvas方法这样计算渐变的颜色
StyleServices.GetElementColor(StyleServices.GetElementDetails(tgGradientCellRowSelectedRight), ecGradientColor1, StartColor); //StartColor is a TColor variable
StyleServices.GetElementColor(StyleServices.GetElementDetails(tgGradientCellRowSelectedRight), ecGradientColor2, EndColor);//EndColor is a TColor variable
2.对于gdsClassic
StyleServices.GetElementColor(StyleServices.GetElementDetails(tgClassicCellRowSelectedRight), ecFillColor, LColor); //LColor is a TColor variable
如果您想检查 VCL 如何绘制选定(突出显示)单元格/行的示例,请尝试实现 TCustomGrid.DrawCellHighlight
方法。
关于delphi - 选定的 stringgrid 行的正常颜色是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13060257/
我在使用 TStringGrid 和弹出菜单时遇到问题 我想知道从弹出菜单中选择一个项目时上次处于事件状态的单元格的行/列。但是,当我单击弹出菜单时,StringGrid.Row 返回为 -1。 我试
如何获取 stringgrid 中选定单元格或范围的总和值?请注意,有时这些单元格包含字符串值! 我尝试了GridCoord,但它效果不佳,因为有时会有“隐藏列”。 procedure TMainSh
我想将备忘录的内容复制到 TStringGrid。 如果字符串之间有空格或间隙,则应将该单词添加到 StringGrid 中其自己的单元格中。 因此,假设我的自动换行备忘录包含如下信息: 如何将该信息
我想以自动换行格式在字符串网格单元格中显示一个长字符串,并找到了以下代码来执行此操作: procedure TForm1.StringGrid1DrawCell(Sender: TObject; AC
我正在这样做: procedure TForm1.Button1Click(Sender: TObject); var dtStart: TDateTime; I: Integer; begin
我在网上找到了很多解决方案,但它们都不起作用,因为 StringGrid1.ColumnCount 属性是只读的。我正在使用 Delphi 10 Seattle。 我有一个 StringGrid1,我
我想知道如何以编程方式确定字符串网格的单元格中的数据已被修改? 我在表单中有一个字符串网格。 stringgrid 的数据是从数据库加载的。如果用户修改了数据,我想更改数据库中的数据。 请分享代码。
我在我的应用程序中使用stringgrid。数据从数据库(后端mysql)获取并显示在stringgrid中。 我想在每行的状态单元格中插入图像。即 if status =online t
嗨,有谁知道是否可以将图片显示为字符串网格的背景,或者是否有人知道任何可以执行此操作的免费网格组件。 谢谢 科林 最佳答案 您可以使用支持所有者绘制的TDrawGrid(或TStringGrid),并
我尝试将数据从 StringGrid 插入到 Oracle DB 表中,我尝试如下。 function TfrmMapping.LoadtoTable: Boolean; var I, J: In
我必须将 StringGrid(其单元格)中的文本居中对齐,并且我正在使用您在此处看到的代码。我在另一个答案中找到了它,并编辑了一些内容。 procedure TForm1.StringGrid1Dr
我在 Delphi 7 中有一个字符串网格,有 0..N 行。有一个列表框,其中包含从 0..N 开始的数字如果用户单击列表框 number 中的任何数字,则应在字符串网格上选择该行号。 所以我有这个
在 Delphi 2010 中,我需要显示一个网格,该网格具有大约 15 列 x 5 行的水平滚动条。 我选择使用 StringGrid。 但是,当鼠标按钮向下拖动水平滚动条时,我希望网格实时滚动。
我一直在寻找解决方案,但没有任何运气。有谁知道一个简单的方法来做到这一点?例如,我想拉伸(stretch)网格的第二列以适应网格的宽度! 最佳答案 使用 ColWidths 属性,如下所示: with
任何人都可以为 Delphi 推荐一个好的 stringgrid 组件,它可以像 Microsoft Excel 一样处理每个单元格上的注释吗?我正在网上搜索,但还没有找到太多,如果这里有人使用过类似
我正在重写字符串网格的OnDrawCell。在某些情况下,我想在系统进行绘图时使用用于所选行的常规 TColor(无 OnDrawCell)。 那是什么颜色? clXXX ? 最佳答案 在 Delph
使用 Delphi 2010 和 TStringGrid 组件,我当前显示数据库查询中的五个字段。 这是我正在做的事情的简单示例 //设置网格 procedure TGriddata.FormCrea
我的表单中有一个 StringGrid,当我按下 Button1 时,我会在该网格内移动一些单元格。这是一个例子: 当我按下Button1时,我从情况A转到情况B。但我也希望能够做相反的事情:我的意思
我有一个 StringGrid,它能够使用 OnDraw 方法绘制新线。 它工作正常,但现在我希望用户可以使用键盘输入新行。目前,必须将多行文本复制粘贴到 StringGrid 中。 每次按下 VK_
在 StringGrid 组件后代中,我想根据单元格的值更改弹出提示消息。我的编码: procedure TForm.GridMouseEnterCell(Sender: TObject; ACol,
我是一名优秀的程序员,十分优秀!