Delphi 透明背景TStringGrid
问题是如何在TStringGrid控件中创建透明背景。其想法是修改默认情况下在网格中创建的白色,并使用空颜色,但我没有成功。我在这里分享迄今为止所做的工作 在研究了这个问题之后,我通过在背景部分中的“Edit Custum Style”修改不透明属性,在StringGrid中显示了一些透明度。此解决方案并不完美,因为它会影响关联的TScrollBox控件,但至少它是第一种方法Delphi 透明背景TStringGrid,delphi,firemonkey,Delphi,Firemonkey,问题是如何在TStringGrid控件中创建透明背景。其想法是修改默认情况下在网格中创建的白色,并使用空颜色,但我没有成功。我在这里分享迄今为止所做的工作 在研究了这个问题之后,我通过在背景部分中的“Edit Custum Style”修改不透明属性,在StringGrid中显示了一些透明度。此解决方案并不完美,因为它会影响关联的TScrollBox控件,但至少它是第一种方法 FMX TStringGrid的设计没有使其透明的特性。但是,使用样式可以实现透明度。如果不想,您不需要在整个应用程
FMX TStringGrid的设计没有使其透明的特性。但是,使用样式可以实现透明度。如果不想,您不需要在整个应用程序上使用样式,但如果愿意,您可以这样做 解决方案是网格样式的简单设置,如下所示: 将
TStringGrid
添加到Fmx
表单
- 在网格上单击鼠标右键,然后选择“编辑默认样式”
- 此时将打开样式编辑器。在
中选择structure
gridstyle-background-content
- 在
的属性中,找到content
并设置为ClipParent
True
- 单击应用并关闭,关闭样式编辑器
TStringGrid
properties中设置Options.header=False
来删除标题
我刚刚注意到,您也找到了一些解决方案,但是依赖
不透明度设置可能会很棘手,因为它可能也会影响网格的其他部分,可能在您的情况下,如果您选择内容
并调整其不透明度?您希望通过什么,图像还是。。。?或者你只是想让它和后面的形状有相同的颜色?通常不需要增加透明度,而是在画布上画一些东西,可以是网格后面任何东西的图像。注意,这可能会变得很棘手,因为自定义绘制机制要求您一次绘制一个单元格。因此,保持完整图像缓存,然后在绘制每个单元格时,复制该单元格rect所需的内容。嗨,Tom,TStringrid绘制在firemonkey框架上,而这是在表单上。我可以更改单元格的颜色,但我不能删除绘制单元格的白色背景色,应该是空颜色(透明;TAlphaColors.null),仅显示网格文本和分隔线。您的方法是最合适的,并提供了一个很好的解决方案,还解决了第一种方法使用不透明度的问题。我投你一票。非常感谢你的帮助。不客气,你也应该接受紫外线治疗。看来你以前的dv也不见了。伟大的这在很大程度上是因为你对拯救这个问题感兴趣!。感谢您对所有人的救赎:-)。