Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 透明背景TStringGrid_Delphi_Firemonkey - Fatal编程技术网

Delphi 透明背景TStringGrid

Delphi 透明背景TStringGrid,delphi,firemonkey,Delphi,Firemonkey,问题是如何在TStringGrid控件中创建透明背景。其想法是修改默认情况下在网格中创建的白色,并使用空颜色,但我没有成功。我在这里分享迄今为止所做的工作 在研究了这个问题之后,我通过在背景部分中的“Edit Custum Style”修改不透明属性,在StringGrid中显示了一些透明度。此解决方案并不完美,因为它会影响关联的TScrollBox控件,但至少它是第一种方法 FMX TStringGrid的设计没有使其透明的特性。但是,使用样式可以实现透明度。如果不想,您不需要在整个应用程

问题是如何在TStringGrid控件中创建透明背景。其想法是修改默认情况下在网格中创建的白色,并使用空颜色,但我没有成功。我在这里分享迄今为止所做的工作

在研究了这个问题之后,我通过在背景部分中的“Edit Custum Style”修改不透明属性,在StringGrid中显示了一些透明度。此解决方案并不完美,因为它会影响关联的TScrollBox控件,但至少它是第一种方法


FMX TStringGrid的设计没有使其透明的特性。但是,使用样式可以实现透明度。如果不想,您不需要在整个应用程序上使用样式,但如果愿意,您可以这样做

解决方案是网格样式的简单设置,如下所示:

TStringGrid
添加到
Fmx
表单

  • 在网格上单击鼠标右键,然后选择“编辑默认样式”
  • 此时将打开样式编辑器。在
    structure
    中选择
    gridstyle-background-content
  • content
    的属性中,找到
    ClipParent
    并设置为
    True
  • 单击应用并关闭,关闭样式编辑器
现在有了一个网格,其中标题下的区域是透明的。如果您的行数(默认值为100)多于适合的行数,则右侧还会有滚动条

您可以通过在
TStringGrid
properties中设置
Options.header=False
来删除标题



我刚刚注意到,您也找到了一些解决方案,但是依赖
不透明度
设置可能会很棘手,因为它可能也会影响网格的其他部分,可能在您的情况下,如果您选择
内容
并调整其不透明度?

您希望通过什么,图像还是。。。?或者你只是想让它和后面的形状有相同的颜色?通常不需要增加透明度,而是在画布上画一些东西,可以是网格后面任何东西的图像。注意,这可能会变得很棘手,因为自定义绘制机制要求您一次绘制一个单元格。因此,保持完整图像缓存,然后在绘制每个单元格时,复制该单元格rect所需的内容。嗨,Tom,TStringrid绘制在firemonkey框架上,而这是在表单上。我可以更改单元格的颜色,但我不能删除绘制单元格的白色背景色,应该是空颜色(透明;TAlphaColors.null),仅显示网格文本和分隔线。您的方法是最合适的,并提供了一个很好的解决方案,还解决了第一种方法使用不透明度的问题。我投你一票。非常感谢你的帮助。不客气,你也应该接受紫外线治疗。看来你以前的dv也不见了。伟大的这在很大程度上是因为你对拯救这个问题感兴趣!。感谢您对所有人的救赎:-)。