我试图将多点渐变应用于TRectangle。 如果我只是设置一个两点渐变,那么一切都很好,但是使用相同的TRectangle并尝试应用5个点,我只会看到部分渐变。
如果我使用Delphi IDE设置多点渐变效果很好(在表单预览中),问题是我该如何在代码中进行操作,而我在搜索中找不到任何示例代码。 / p>
这是我正在尝试的代码:
BlockBG := TRectangle.Create(MainForm);
BlockBG.Parent := MainForm;
BlockBG.Fill.Kind := TBrushKind.Gradient;
BlockBG.SetBounds(0,0,clientWidth,clientHeight);
While BlockBG.Fill.Gradient.Points.Count < 5 do BlockBG.Fill.Gradient.Points.Add;
BlockBG.Fill.Gradient.Points[0].Color := $FF535b5e;
BlockBG.Fill.Gradient.Points[1].Color := $FFfefefe;
BlockBG.Fill.Gradient.Points[2].Color := $FF4a5154;
BlockBG.Fill.Gradient.Points[3].Color := $FFfdfdfd;
BlockBG.Fill.Gradient.Points[4].Color := $FF535b5e;
BlockBG.Fill.Gradient.Points[0].Offset := 0.0;
BlockBG.Fill.Gradient.Points[1].Offset := 0.25;
BlockBG.Fill.Gradient.Points[2].Offset := 0.5;
BlockBG.Fill.Gradient.Points[3].Offset := 0.75;
BlockBG.Fill.Gradient.Points[4].Offset := 1;
BlockBG.Repaint;
答案 0 :(得分:1)
如果我注释掉“ FMX.Types.GlobalUseGPUCanvas:= True;”,这似乎是Delphi 10.3中GPU Canvas实现中的错误。它按预期工作。