gpt4 book ai didi

delphi - 如何在 TCanvas 上绘制剖面线并指定背景颜色

转载 作者:行者123 更新时间:2023-12-03 15:07:59 25 4
gpt4 key购买 nike

我正在尝试制作一个“空白”背景以在其上放置图像。通过将 TImage 放置在表单上并执行以下操作来创建剖面线并不太困难:

image1.Canvas.brush.Style := bsDiagCross;
image1.canvas.brush.color := clWhatever;
image1.canvas.FillRect(image1.clientrect);

这有效,我在黑色背景上得到了 clWhatever 中的剖面线图案。但这就是问题所在。它始终是黑色的,如果我想要黑色以外的颜色,我找不到任何方法来指定背景颜色。

有人知道怎么做吗?

最佳答案

阴影画笔的颜色是前景色 - 阴影本身的颜色。

使用阴影画笔时,背景颜色是单独设置的,据我所知,背景颜色没有作为 TCanvas 的属性公开,因此需要使用 Windows GDI API SetBkColor () 函数。

例如要在白色背景上绘制红色阴影,请在使用 Canvas 画笔绘制之前添加一个调用来设置背景颜色:

image1.Canvas.brush.Style := bsDiagCross;
image1.canvas.brush.color := clRed;

SetBkColor(image1.Canvas.Handle, ColorToRGB(clWhite));
image1.canvas.FillRect(image1.clientrect);

[更新:] 注意: 在 Delphi 2010(可能还有一些早期版本)中,您应该在设置画笔之后调用 SetBKColor()特性。在 Canvas 内部,当 Canvas 创建其画笔时,它会调用 SetBKColor(),该函数会破坏在引用 Canvas.BrushSetBKColor() 进行的任何显式调用>。创建内部 Canvas 画笔的时间或 SetBkColor() 的内部使用似乎在 Delphi 2006(测试原始帖子时使用)和 Delphi 2010 之间发生了变化。无论出于什么原因在使用 SetBKColor 之前立即调用它显然更可靠。

关于delphi - 如何在 TCanvas 上绘制剖面线并指定背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3129266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com